A voir également:
- Retour à la ligne dans 1 fichier txt
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Retour à la ligne excel mac - Guide
- Fichier rar - Guide
12 réponses
salut,
comment ca marche pas?
c'est une erreur de compilation ou après l'éxecution tu n'obtient pas de résultat voulu?
explique d'avantage pour que je peux t'aider...
@+
comment ca marche pas?
c'est une erreur de compilation ou après l'éxecution tu n'obtient pas de résultat voulu?
explique d'avantage pour que je peux t'aider...
@+
je veux transformer une chaine de caractere d'un fichier à un autre, le deuxieme fichier contient qu'un mot à la ligne, càd si il trouve un espace sur la ligne du premier fichier, il fait un retour à la ligne sur le deuxieme fichier
void CClient::lire_fichier(char *nom_fic)
{
FILE *fic,*ficnou;
fic = fopen(nom_fic,"r");
ficnou = fopen("d:\\tmp.txt","w");
char chaine[100];
char *p;
int j=0;
int i=0;
if (!fic){
printf("erreur");
exit(0);
}
else{
fgets(chaine,100,fic);
}
for(p=chaine;*p;p++){
if(*p != ";")
fwrite(p,50,1,ficnou);
else
fprintf(ficnou,"\n");
}
}
{
FILE *fic,*ficnou;
fic = fopen(nom_fic,"r");
ficnou = fopen("d:\\tmp.txt","w");
char chaine[100];
char *p;
int j=0;
int i=0;
if (!fic){
printf("erreur");
exit(0);
}
else{
fgets(chaine,100,fic);
}
for(p=chaine;*p;p++){
if(*p != ";")
fwrite(p,50,1,ficnou);
else
fprintf(ficnou,"\n");
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
1. tu a lu le fichier dans chaine[100] donc tu doit etre sûr que la taille du fichier source est de 100 carcacteres
sinon tout le travail est faux
2. au lieu de se casser la tete avec un pointeur tu peut parcourir simplement la chaine lu avec un index: chaine[i]
au lieu de p, car tu connait déja la taille de chaine
for(int i=0;i<100;i++){
if (chaine[i]!=' ') fputc(chaine[i],ficnou);
else fputc('\n',ficnou);
}
3. pourquoi le caractere ';' tu as dit espace et non pas point virgule?
sinon tout le travail est faux
2. au lieu de se casser la tete avec un pointeur tu peut parcourir simplement la chaine lu avec un index: chaine[i]
au lieu de p, car tu connait déja la taille de chaine
for(int i=0;i<100;i++){
if (chaine[i]!=' ') fputc(chaine[i],ficnou);
else fputc('\n',ficnou);
}
3. pourquoi le caractere ';' tu as dit espace et non pas point virgule?
je connais pa la taille du fichier, pcq c variable, ta solution ne m a pa fait le retour à la ligne aussi
1. alors tu doit lire le fichier caractere par caractere jusqu'à le EOF caractere
2. et si le retour à ligne est effectué par : else fputc('\n',ficnou); // traduction : si le carcatere==';' on ecrit '\n'
@+
2. et si le retour à ligne est effectué par : else fputc('\n',ficnou); // traduction : si le carcatere==';' on ecrit '\n'
@+