Prog C renvoyer print vers un fichier
Résolu
ludoo78
Messages postés
117
Date d'inscription
Statut
Membre
Dernière intervention
-
mikelo11 Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
mikelo11 Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis un vrai de vrai debutant dans la prog C.
En fait j'ai fait un programme avec :
- une fonction monPrintf qui prend comme argument une chaîne de caractère et qui l’affiche à l’écran.
- une fonction de type scanf qui place ce qui est tapé au clavier dans une chaîne de caractère.
- le main
monPrintf (char *str)
{
printf(str);
}
monScanf ()
{
scanf (%c, str);
}
main()
{
monScanf();
monPrintf(str);
}
Ce programme simple est censé renvoyé à l'ecran ce que l'on a rentré, mais cela ne marche pas.
Dans un deuxième temps, c'est là que ça se complique, je voudrais renvoyer le texte plutot qu'à l'ecran dans un fichier texte et la je sais vraiment pas comment faire.
Quelqu'un pourrait-il m'aider please???
Merci.
Ludo
Je suis un vrai de vrai debutant dans la prog C.
En fait j'ai fait un programme avec :
- une fonction monPrintf qui prend comme argument une chaîne de caractère et qui l’affiche à l’écran.
- une fonction de type scanf qui place ce qui est tapé au clavier dans une chaîne de caractère.
- le main
monPrintf (char *str)
{
printf(str);
}
monScanf ()
{
scanf (%c, str);
}
main()
{
monScanf();
monPrintf(str);
}
Ce programme simple est censé renvoyé à l'ecran ce que l'on a rentré, mais cela ne marche pas.
Dans un deuxième temps, c'est là que ça se complique, je voudrais renvoyer le texte plutot qu'à l'ecran dans un fichier texte et la je sais vraiment pas comment faire.
Quelqu'un pourrait-il m'aider please???
Merci.
Ludo
A voir également:
- Prog C renvoyer print vers un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
7 réponses
alor deja ds l'en tete d'une fonction il ne faut pas oublier de preciser le type de ce qu'elle renvoie (un char* pour monscan, un void pour mon print, et un int pour le main)
ensuite ds ton printf et ton scanf tu as ds erreurs de syntaxe tu dois revoir ça
ensuite il ne faut pas oublier de declarer str puis de lui allouer de la memoire
voici ton programme corriger
pour ta deuxieme question pour ecrire ds un fichier il faut que tu rajoute ça ds la fonction monPrintf
voila bonne chance (si tu n'as pas compris quelquechose n'hesites pas a demander...)
ensuite ds ton printf et ton scanf tu as ds erreurs de syntaxe tu dois revoir ça
ensuite il ne faut pas oublier de declarer str puis de lui allouer de la memoire
voici ton programme corriger
#include <stdio.h> void monPrintf (char *str) { printf("%s",str); } char *monScanf (char *str) { scanf ("%s", str); return str; } int main() { char *str; str = (char *) malloc(100); monScanf(str); monPrintf(str); return 0; }
pour ta deuxieme question pour ecrire ds un fichier il faut que tu rajoute ça ds la fonction monPrintf
FILE *f; f=fopen("save.txt","w") fprintf(f,"%s",str);
voila bonne chance (si tu n'as pas compris quelquechose n'hesites pas a demander...)
Merci t'es un boss ça marche nikel.
Juste une petite question pour renvoyer le mot dans le fichier dans la ligne f=fopen("save.txt,"w"), le w c'est pour dire write? Parce que moi on m'a parlé d'une technique avec WRONLY, juste par simple curiosité si tu pouvais m'en dire plus la dessus si tu vois de quoi je parle.
Thanks.
Ludo
Juste une petite question pour renvoyer le mot dans le fichier dans la ligne f=fopen("save.txt,"w"), le w c'est pour dire write? Parce que moi on m'a parlé d'une technique avec WRONLY, juste par simple curiosité si tu pouvais m'en dire plus la dessus si tu vois de quoi je parle.
Thanks.
Ludo
f=fopen("save.txt","w")
cette ligne ça veut dire que tu ouvre le fichier "save" (tu peux lui donner le nom que tu veux) en mode ecriture "w" (write)
ok merci.
Et par rapport à WRONLY tu ne sais pas? je crois que c'est une façon pareil pour attribuer les droit en ecriture??
Et par rapport à WRONLY tu ne sais pas? je crois que c'est une façon pareil pour attribuer les droit en ecriture??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
heu... je pense que c'est pareil sa doit vouloir dire "write only"
ps : n'oubie pas de metre ton post en resolu si tu as plus de probleme ;)
ps : n'oubie pas de metre ton post en resolu si tu as plus de probleme ;)
Il y a différents caractères que tu peux écrire :
r : tu pourras juste utiliser les fonctions suivantes :
- fgets(char* chaineDansLaquelleLeTexteSeraMit, int* longueurDuTexteÀMettreDansLaChaîne, FILE* fichierOùLaChaîneEstStockée); // Prend une chaîne dont la longueur est dans le int
Exemple : fgets(nom, 15, fichier);
- fscanf(FILE* fichierOùLe(s)Nombre(s)est(sont)Stocké(s), "%ld", &variableOùStockerLeNombre); // Prend un nombre dans le fichier
Exemple : fscanf(fichier, "%ld", &a);
- fgetc(char* oùMettreLeCaractère, FILE* fichier);
Exemple : fgetc(caractere, fichier); // Prend un caractère et le stocke dans une variable de type char.
w : tu pourras seulements utiliser les fonctions suivantes et le fichier sera créé s'il n'existe pas.
- fputs(char* chaîneÀÉcrire, FILE* fichierOùMettreLaChaîne);
Exemple : fputs(nom, fichier); // Écrit la valeur de nom dans le fichier.
- fputc(char* caractereÀÉcrire, FILE* fichierOùMettreLeCaractère);
Exemple : fputc('a', fichier); // Ajoutera a dans le fichier.
- fprintf(FILE* fichierOùÉcrireLeNombre, "%ld", int* nombreÀÉcrire);
Exemple : fprintf(fichier, "%ld", 1); // Écrira 1 dans le fichier.
r+ : les mêmes foncfions que r et que w. Le fichier doit avoir été créé.
w+ : vide le fichier de son contenu, et tu peux utiliser les mêmes fonctions que w.
a : vous pouvez utiliser les fonctions de w, le programme ajoutera les données à partir de la fin du fichier. Le fichier sera créé s'il n'existe pas.
a+ : tu peux utiliser les fonctions de r et de w, ce sera écrit à la fin et le fichier sera créé s'il n'existe pas.
J'espère t'avoir aidé.
P.S.: WRITEONLY, c'est faux. N'y pense pas.
r : tu pourras juste utiliser les fonctions suivantes :
- fgets(char* chaineDansLaquelleLeTexteSeraMit, int* longueurDuTexteÀMettreDansLaChaîne, FILE* fichierOùLaChaîneEstStockée); // Prend une chaîne dont la longueur est dans le int
Exemple : fgets(nom, 15, fichier);
- fscanf(FILE* fichierOùLe(s)Nombre(s)est(sont)Stocké(s), "%ld", &variableOùStockerLeNombre); // Prend un nombre dans le fichier
Exemple : fscanf(fichier, "%ld", &a);
- fgetc(char* oùMettreLeCaractère, FILE* fichier);
Exemple : fgetc(caractere, fichier); // Prend un caractère et le stocke dans une variable de type char.
w : tu pourras seulements utiliser les fonctions suivantes et le fichier sera créé s'il n'existe pas.
- fputs(char* chaîneÀÉcrire, FILE* fichierOùMettreLaChaîne);
Exemple : fputs(nom, fichier); // Écrit la valeur de nom dans le fichier.
- fputc(char* caractereÀÉcrire, FILE* fichierOùMettreLeCaractère);
Exemple : fputc('a', fichier); // Ajoutera a dans le fichier.
- fprintf(FILE* fichierOùÉcrireLeNombre, "%ld", int* nombreÀÉcrire);
Exemple : fprintf(fichier, "%ld", 1); // Écrira 1 dans le fichier.
r+ : les mêmes foncfions que r et que w. Le fichier doit avoir été créé.
w+ : vide le fichier de son contenu, et tu peux utiliser les mêmes fonctions que w.
a : vous pouvez utiliser les fonctions de w, le programme ajoutera les données à partir de la fin du fichier. Le fichier sera créé s'il n'existe pas.
a+ : tu peux utiliser les fonctions de r et de w, ce sera écrit à la fin et le fichier sera créé s'il n'existe pas.
J'espère t'avoir aidé.
P.S.: WRITEONLY, c'est faux. N'y pense pas.