Ecriture dans un fichier texte ...

Fermé
hassine - 8 déc. 2013 à 13:04
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 8 déc. 2013 à 14:44
Bonjour, je veut ecrire dans le fichier utlisateur .... le fichier s'est ouvert mais l'ecriture ne s'affiche pas .... merci d'avance pour l'aide


#include<stdio.h>
int main ()
{
FILE* utilisateur ;
char code[3];
char nom [20];
utilisateur = fopen("utilisateur.txt","w");
if (utilisateur != NULL)
{
printf("code :" ) ;
scanf("%s" , &code) ;
printf("nom :") ;
scanf("%s", &nom);
fprintf(utilisateur ,"code :%s ","nom :%s " ,code , nom);
fclose(utilisateur) ;
}
return 0;
}
A voir également:

2 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
8 déc. 2013 à 13:07
0
dzl mais j'ai pas compris ..... ou il est le probleme ... :( :(
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
8 déc. 2013 à 14:44
"mais l'ecriture ne s'affiche pas ": ton code n'est pas censé afficher ce que tu as tapé mais est censé écrire dans un fichier.
Le problème se trouve sur cette ligne:
fprintf(utilisateur ,"code :%s ","nom :%s " ,code , nom); 

Le premier argument est correct, on écrit bien dans le fichier, mais le 2e et 3e ne sont pas bons: il ne doit y avoir qu'une seule chaîne de caractères définissant le formatage; et ici c'est juste
"code :%s "
, qui prendra l'argument suivant en tant que string et va l'écrire comme ça dans le fichier, sans autre formatage, tu te retrouves donc avec ça dans ton fichier:
code :nom :%s  
Autant dire que c'est pas ce qu'on cherche, réunissons les 2 chaines de format:
fprintf(utilisateur ,"code :%s\nnom :%s " ,code , nom);

Oh magie, ça marche.
"\n"
fait un retour à la ligne; sur Windows il faut mettre
"\r\n"
à la place.
0