cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 2009
-
10 nov. 2003 à 23:04
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 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..."
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 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..."
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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...
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 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..."
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 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..."
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 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.