SVP aider moi sur du c
niki
-
niki -
niki -
g un prog qui lit un ensemble de mot dans un fichier d'entree et les récrit dans un autre , j'utilise une boucle comme celle-ci:
while (!feof(filer)) //filer=fichier d'entree
{
fscanf(filer,"%s",&chaine); //lit une chaine de caractere
fprintf(filew,"%s",chaine); //ecrit chaine ds fichier de sortie
}
ca marche bien sauf que le dernier mot et répéter 2 fois dans mon fichier de sortie ,pkoi? et stt comment faire? ex:
fichier entree =
coucou ca va
fichier sortie=
coucou ca va va
"va" est répété 2 fois pkoi?et comment faire pour l'éviter
merci bcp
while (!feof(filer)) //filer=fichier d'entree
{
fscanf(filer,"%s",&chaine); //lit une chaine de caractere
fprintf(filew,"%s",chaine); //ecrit chaine ds fichier de sortie
}
ca marche bien sauf que le dernier mot et répéter 2 fois dans mon fichier de sortie ,pkoi? et stt comment faire? ex:
fichier entree =
coucou ca va
fichier sortie=
coucou ca va va
"va" est répété 2 fois pkoi?et comment faire pour l'éviter
merci bcp
A voir également:
- SVP aider moi sur du c
- Des problèmes sont survenus lors de l'installation des mises à jour, mais nous réessaierons ultérieurement. si le problème persiste et que vous souhaitez rechercher des informations sur internet ou contacter l'assistance pour en obtenir, ceci peut vous aider : (0x80070005) - Guide
- En préparant son diaporama, tom a pris quelques notes qui l'aideront lors de sa présentation. quand il présentera l'âne, il a prévu de raconter une anecdote sur cet animal. comment s'appelle l'âne de son histoire ? - Forum Powerpoint
- Aider moi svp ✓ - Forum Loisirs / Divertissements
- Charade, aider moi svp ✓ - Forum Loisirs / Divertissements
- Quel logiciel peux aider mixcraft davoir un bon resultat - Forum Loisirs / Divertissements
5 réponses
T'as essayé la boucle suivante ?
while (!feof(filer)) //filer=fichier d'entree
{
if (fscanf(filer,"%s",&chaine)) //lit une chaine de caractere
fprintf(filew,"%s",chaine); //ecrit chaine ds fichier de sortie
}
while (!feof(filer)) //filer=fichier d'entree
{
if (fscanf(filer,"%s",&chaine)) //lit une chaine de caractere
fprintf(filew,"%s",chaine); //ecrit chaine ds fichier de sortie
}
Il ne faut pas appeler fprintf si fscanf n'a pas trouvé de chaîne.
Le bug est là.
Il faut tester le résultat du "scanf".
Le bug est là.
Il faut tester le résultat du "scanf".
Essaie :
while (!feof(filer)) //filer=fichier d'entree
{
if (fscanf(filer,"%s",&chaine) != -1)
fprintf(filew,"%s",chaine);
}
while (!feof(filer)) //filer=fichier d'entree
{
if (fscanf(filer,"%s",&chaine) != -1)
fprintf(filew,"%s",chaine);
}
Résumons-nous :
Il faut de manière générale tester les comptes-rendus retournés par les fonctions. Dans cet exemple, il est plus sûr
d'écrire :
while (fscanf(filer, "%s", &chaine) != EOF)
{
fprintf (filew, "|%s", chaine);
}
Take care !
Il faut de manière générale tester les comptes-rendus retournés par les fonctions. Dans cet exemple, il est plus sûr
d'écrire :
while (fscanf(filer, "%s", &chaine) != EOF)
{
fprintf (filew, "|%s", chaine);
}
Take care !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai essayer ca marche pas mieux et je voi pas trop l'intérer du if.
à mon avis c'est dù au fait que quand il détecte qu'il est a la fin du fichier d'entree , il rentre quand meme une derniere fois dans la boucle et récrit le mot enregistrer dans chaine, d'ou le fait que g 2 fois le dernier mot.
Pense tu pas?ou je me plante? Comment faire