utiliser un nombre stocké dans un fichier [C] - C - Programmation
Marsh Posté le 22-04-2007 à 16:07:42
y a des focntions de conversion de chaine a d'autres type, comme atoi() qui transforme en integer
Marsh Posté le 22-04-2007 à 16:10:56
zecrazytux a écrit : y a des focntions de conversion de chaine a d'autres type, comme atoi() qui transforme en integer |
strtod()
Marsh Posté le 22-04-2007 à 16:14:09
-Opera- a écrit : strtod() |
qui transforme en double
voilà de quoi avancer
Marsh Posté le 22-04-2007 à 16:27:47
Code :
|
Marsh Posté le 22-04-2007 à 17:45:01
j'ai controlé l'evolution de la somme et de la valeur de fscanf mais ca reste bloqué a 0, ou ca met n'importe quoi...
Si j'ai bien compris strtod () transforme un nombre en chaine de caracteres? Le pb c'est qu'apres je vais devoir l'utiliser comme nombre...
merci pour toute vos reponses entouKa , ca m'eclaire un peu plus.
Marsh Posté le 22-04-2007 à 18:01:04
cyber81 a écrit : |
Non c'est le contraire. Si tu tiens vraiment à travailler avec des float et non des double (ou que t'as pas le choix), c'est strtof().
Marsh Posté le 22-04-2007 à 21:47:27
cyber81 a écrit : j'ai controlé l'evolution de la somme et de la valeur de fscanf mais ca reste bloqué a 0, ou ca met n'importe quoi... |
fscanf te renvoie le nombre de valeurs qu'il a stockées. Si ça te donne "0" alors que manifestement tu veux stocker une valeur, il y a un problème...
cyber81 a écrit : Si j'ai bien compris strtod () transforme un nombre en chaine de caracteres? |
Ben non. "strtod" se lit "str(ing) to d(ouble)" donc chaîne vers nombre donc ça transforme une chaîne en nombre !!!
cyber81 a écrit : Dans un fichier j'ai memorisé une liste de "nb_valeurs" nombre du style :
|
Il n'y a aucune cohérence dans ce que t'écris
1) pourquoi tu prépares un tableau de 5 nombres alors que, manifestement, tu n'en utilises qu'un seul dans ta boucle ???
2) un tableau de 5 "int" pour stocker des nombres à virgule flottante ???
3) "&nombre" dans ton fscanf montre que vraiment tu ne sais pas que "nombre" est un tableau. C'est pourtant écrit 3 lignes au dessus !!!
4) somme=somme+fscanf(...) => finallement, on se demande de plus en plus à quoi sert la variable (ou le tableau) "nombre" que tu n'utilises en fait jamais
cyber81 a écrit : J'ai lu aussi que je pouvais utiliser quelque chose comme fgets mais ici j'ai des nombres et pas une chaine de caracteres... |
Ton fichier contient les éléments suivants
'0' '.' '1' '2' '3' '4' '\n' '0' '.' '5' '6' '8' '7' '\n' '0' '.' '3' '2' '1' '4' '\n' '0' '.' '0' '2' '5' '6' '\n'
Tels que je te les affiche, c'est bien une suite de caractères non ??? Que la commande "cat" (Unix/Linux) ou "type" (Windows) te les affiche bien proprement ligne par ligne (chaque ligne calée sur le '\n') n'est qu'un effet d'affichage. Et que ces suites de caractères représentent des nombres dans ta tête n'est qu'une adaptation que fait ton cerveau de ce qu'il voit => Pour l'ordinateur, ce ne sont que des caractères !!!
cyber81 a écrit : Des suggestions ? |
Oui. Commence par bien comprendre ce que contient ton fichier... et comment fonctionnent les fonctions que t'invoques (le C n'est pas de la sorcellerie). Un petit peu de jugeotte algorithmique par dessus (inutile de déclarer un tableau si on n'utilise qu'un nombre à la fois) et tout ira beaucoup mieux...
Marsh Posté le 22-04-2007 à 16:00:14
Salut tout le monde,
Dans un fichier j'ai memorisé une liste de "nb_valeurs" nombre du style :
0.1234
0.5687
0.3214
0.0256
Je voudrais les réutiliser et en calculer la moyenne. J'ai donc fait :
J'ai lu aussi que je pouvais utiliser quelque chose comme fgets mais ici j'ai des nombres et pas une chaine de caracteres...
Des suggestions ?
Message édité par cyber81 le 22-04-2007 à 16:03:20