[c] Enregistrer dans un .txt
Sophie
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonsoir !!
Je viens de finir un programme en C (en mode console).
Pour résumer, il trie des tableaux de nombres, et finalement, il affiche les résultats (printf).
Je souhaiterais récupérer la totalité de ce qui apparaît à l'écran dans un fichier .txt.
En utilisant fputs, c'est le bazar, je dois modifer et séparer l'affichage de mes données, foutre des sprintf partout pour convertir mes variables int en string (sinon ça marche pas dans le fputs).... 'fin bref mission impossible.
Ya t'il pas moyen de récupérer d'un bloc tout ce qui apparait a l'écran de ma console dans un fichier .txt ?
Merci !
Bonne soirée
Sophie
Je viens de finir un programme en C (en mode console).
Pour résumer, il trie des tableaux de nombres, et finalement, il affiche les résultats (printf).
Je souhaiterais récupérer la totalité de ce qui apparaît à l'écran dans un fichier .txt.
En utilisant fputs, c'est le bazar, je dois modifer et séparer l'affichage de mes données, foutre des sprintf partout pour convertir mes variables int en string (sinon ça marche pas dans le fputs).... 'fin bref mission impossible.
Ya t'il pas moyen de récupérer d'un bloc tout ce qui apparait a l'écran de ma console dans un fichier .txt ?
Merci !
Bonne soirée
Sophie
A voir également:
- [c] Enregistrer dans un .txt
- Audacity enregistrer son pc - Guide
- Comment enregistrer un mail - Guide
- Comment enregistrer une conversation - Guide
- Enregistrer son ecran - Guide
- Comment enregistrer une video youtube - Guide
5 réponses
Salut,
Tu peux récuperer la sortie sur STDOUT en utilisant une simple rédirection.
programme > resultat.txt
En ce cas au lieu de voir sur la console le résultat, la sortie sera dirigé vers le fichier.
lami20j
Tu peux récuperer la sortie sur STDOUT en utilisant une simple rédirection.
programme > resultat.txt
En ce cas au lieu de voir sur la console le résultat, la sortie sera dirigé vers le fichier.
lami20j
Au lieu d'utiliser printf utilise plutot fprintf
Prototype:
int fprintf( FILE * fic,const char * format [argument,...]);
dans stdio.h
Ainsi tu declare au debut de ton programme une variable myFile:
FILE * myfile;
Si tu veux ecrire a l'écran, tu as juste a faire :
myfile = stdout;
Si tu veux ecrire dans un fichier tu fais :
myfile = fopen("fichier.txt", "w+"); /* au debut */
fclose(myfile); /* A la fin */
et tes printf("mon message") tu les remplaces par des fprintf(myfile, "mon message");
Comme cela tu peux soit ecrire a l'ecran soit dans un fichier.
Sinon il y a bien une autre solution pour ne pas toucher à tout tes printf, mais c plus complexe et plus dangereux pour un debutant ... ;)
Bonne continuation !
Prototype:
int fprintf( FILE * fic,const char * format [argument,...]);
dans stdio.h
Ainsi tu declare au debut de ton programme une variable myFile:
FILE * myfile;
Si tu veux ecrire a l'écran, tu as juste a faire :
myfile = stdout;
Si tu veux ecrire dans un fichier tu fais :
myfile = fopen("fichier.txt", "w+"); /* au debut */
fclose(myfile); /* A la fin */
et tes printf("mon message") tu les remplaces par des fprintf(myfile, "mon message");
Comme cela tu peux soit ecrire a l'ecran soit dans un fichier.
Sinon il y a bien une autre solution pour ne pas toucher à tout tes printf, mais c plus complexe et plus dangereux pour un debutant ... ;)
Bonne continuation !
J'aimerais bien connaitre ta solution dangereuse pour un débutant.
C'etait une boutade ! :)
C'est aucun cas dangereux, ca n'abimera pas le PC ni la mémoire, ni le disque.
En fait pour etre sincère, je ne me rappelais plus de certaines choses, notamment comment recuperer le vrai stdout apres avoir ecrit dans le fichier pour pouvoir reecrire sur la sortie ecran normale.
Ca m'est reviennu apres : il faut utiliser freopen (disponible dans <stdio.h>) et utiliser dup et/ou dup2 qui eux ne sont disponibles que sous Unix (si ma memoire est bonne).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question