Lecture de fichier en C
Laura
-
josch83 -
josch83 -
Bonjpour à tous, j'ai un petit probleme qui m'embete depuis quelque temps.....alors je veux lire dans un fichier ATP6.AA,
Mais cette partie du programme ne marche pas ...pouvez vous m'aider svp !!!.je deviens folle !!!.
File *fichier;
fichier=fopen("ATP6.AA","r");
char topology[50];
for (i=0;i<50;i++){ fscanf(fichier,"%c",topology[i]);
printf("%c\n",topology[i]);
}
Mais cette partie du programme ne marche pas ...pouvez vous m'aider svp !!!.je deviens folle !!!.
File *fichier;
fichier=fopen("ATP6.AA","r");
char topology[50];
for (i=0;i<50;i++){ fscanf(fichier,"%c",topology[i]);
printf("%c\n",topology[i]);
}
A voir également:
- Lecture de fichier en C
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
5 réponses
bon ca fait longtemps que j'ai pas fait ca... mais je vcis essayre de te repondre...
Déjà il faudrait que tu commence par declarer tes variables ensuite tu effectue les operations...
Ensuite tu dois tester l'ouverture du fichier
Ensuite tu peut lire tes caractéres:
Je tiens a dire que cette methode est relativement barbare... (pas de teste de fin de fichier...)
Cherche du coté de fgets ca marche bien...
++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Déjà il faudrait que tu commence par declarer tes variables ensuite tu effectue les operations...
File *fichier;
char topology[50];
int i;
Ensuite tu dois tester l'ouverture du fichier
if ((fichier=fopen("ATP6.AA","r") != NULL)
{
// ouverture reussie
}
else
{
// erreur a l'ouverture
}
Ensuite tu peut lire tes caractéres:
if ((fichier=fopen("ATP6.AA","r") != NULL)
{
// ouverture reussie
for(i=0; i<50; i++)
{
fscanf(fichier,"%c",&topology[i]); //le & je ne suis pas sur mai il me semble qu'il doit y etre...
printf("%c\n", topology[i]);
}
}
else
{
// erreur a l'ouverture
}
Je tiens a dire que cette methode est relativement barbare... (pas de teste de fin de fichier...)
Cherche du coté de fgets ca marche bien...
++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Salut!
il faut en effet se pencher sur la déclaration car on declare tout avant d'utiliser une fonction, sinon c'est caca et ca marche pas. Alors mets d'abord les declarations puis le developpement de ton prog.
A +.
Fat_Cartman,
Parce que je le vaux bien...
il faut en effet se pencher sur la déclaration car on declare tout avant d'utiliser une fonction, sinon c'est caca et ca marche pas. Alors mets d'abord les declarations puis le developpement de ton prog.
A +.
Fat_Cartman,
Parce que je le vaux bien...
Je pense que tu devais te plaindre de ne pas obtenir le fichier et c'est normal :
Ne mettra rien pour topology[i], et pour cause : tu passes une valeur et non une adresse. fscanf tout comme scanf
attend une adresse.
=> remplacer par :
Ca devrait changer des choses déjà ;p
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? :-D
fscanf(fichier,"%c",topology[i]);
Ne mettra rien pour topology[i], et pour cause : tu passes une valeur et non une adresse. fscanf tout comme scanf
attend une adresse.
=> remplacer par :
fscanf(fichier,"%c",&topology[i]);
Ca devrait changer des choses déjà ;p
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? :-D
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
A la limite pour ne pas mettre le &, il aurait fallu écrire topology+i
Car topology[i] équivaut à *(topology+i) => c'est la valeur et non l'adresse
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? :-D
(je viens de me rendre compte que c'était T et pas N :-)
En fait j'était a peu prés sur de mon coup... mais comme je n' ai pas
uilisé scanf ou fscanf depuis un certain temps un petit doute subsitait quand même :o)
++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !