Prog C renvoyer print vers un fichier

Résolu/Fermé
ludoo78 Messages postés 117 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 9 septembre 2010 - 18 déc. 2007 à 17:42
mikelo11 Messages postés 141 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 14 janvier 2013 - 17 oct. 2008 à 02:05
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
A voir également:

7 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
18 déc. 2007 à 18:07
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
#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...)
-1
ludoo78 Messages postés 117 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 9 septembre 2010 27
18 déc. 2007 à 19:00
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
-1
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
18 déc. 2007 à 19:03
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)
-1
ludoo78 Messages postés 117 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 9 septembre 2010 27
18 déc. 2007 à 23:13
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??
-1

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

Posez votre question
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
18 déc. 2007 à 23:46
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 ;)
-1
ludoo78 Messages postés 117 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 9 septembre 2010 27
18 déc. 2007 à 23:52
ok
b je te remercie en ts k de ton aide.
-1
mikelo11 Messages postés 141 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 14 janvier 2013 3
17 oct. 2008 à 02:05
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.
-1