Erreur sur fichier

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 10 nov. 2003 à 23:04
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 11 nov. 2003 à 13:45
Bonjours a tous,
voila je suis en train d'écrire un petit programme... Et j'ai a peine commencé que j'ai deja un probleme, seulement je ne sais pas d'ou il vient... Regardé plutot le code:

#include <stdio.h>

int main()
{
FILE *fp; // pointeur vers le fichier contenant le texte a formater
FILE *fo; // pointeur vers le fichier de sortie
if ((fp fopen("a.txt", "r")) NULL && (fo = fopen("b.txt", "w")) == NULL)
{
printf("Erreur lors de l'ouverture du fichier a formater...\n");
}
else
{
int conteur = 0; // varibale 'conteur' de caractere
char c1; // variable qui contient le caractere lu
while ((c1 = fgetc(fp)) != EOF) // tant qu'on est pas arrive a la fin du fichier
{
conteur++; // compte le nombre de caractere
if (conteur != 10) // tant qu'on a pas atteint la valeur max de caractere pour une ligne
{
fputc(c1, fo); // on copie le caractere dans le fichier de sortie
}
else // quand on a atteint la valeur maximal de caractere sur une ligne
{
fputc("\n", fo); // on va a la ligne
conteur = 0;
}
}
}

return 1;
}


A la compilation je n'est pas d'erreur, mais lorsque j'execute mon .exe, bah j'ai un erreur... Est-ce que quelqu'un pourrait m'aider svp...
Merci par avance...
Bob...

"La chance accorde ses faveur aux esprits avertis..."

6 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
10 nov. 2003 à 23:21
Salut,
fputc(...) prend un char en param, pas une chaine de caractere.

fputc('\n', fo);

Sinon un autre truc:if ((fp fopen("a.txt", "r")) NULL && (fo = fopen("b.txt", "w")) == NULL)

Met plutot un OU logique, comme ca si une des ouverture echoue le message d'erreur s'affichera.
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
10 nov. 2003 à 23:27
Effectivement maintenant ca marche... C'était une erreur trop bete de ma part (mais bon, c'est comme que l'on apprend)... Sinon pour le OU logique je l'avais mit, c'est juste qu'en recopiant mon code je sais pas pourquoi j'ai mit un ET... Bon voila je te remercie beaucoup pour ton aide...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 nov. 2003 à 23:32
Salut,
hormis l'erreur de prog, faut revoir ta methode. Lire un fichier et reecrire dans un autre octet par octet est beaucoup trop long, faut reduire au minimum les acces disques.
Aspire l'original dans un buffer. 2 pointeurs sur ce buffer devraient suffire pour isoler les blocs a remettre dans le second fichier. Tu n'auras plus qu'1 acces en lecture et tu divises +- par 10 le nbr d'ecritures.
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
11 nov. 2003 à 10:56
Salut BruNews,
ecoute j'aimerais bien faire ce que tu dis, mais je suis débutant et les pointeurs j'y comprend vraiment pas grand chose... :sad) alors ce que je vais faire, c'est je vais finir mon programme comme je pensais le faire... et après je regarderais pour faire ce que tu me dit.
Merci pour tes conseils...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
11 nov. 2003 à 10:58
Ah sinon j'ai une petite question juste comme ca: avec l'histoire de fgetc, puisqu'il n'accepte pas les chaines de caractères pourquoi lors de la compilation je n'ai pas eu d'erreur?
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 nov. 2003 à 13:45
Salut,
C'est ton compilo qui a laissé passer l'erreur.
Visual C++ te sort une erreur a la ligne du fputc et te dis que tu ne peut pas convertir un char* en char ou un truc du genre.
0
Rejoignez-nous