Redirection vers un fichier

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
salut à tous,
je travaille sur VS8 en C et je voudrai savoir comment lire a partir du clavier et ecrire dans un fichier
j'ai essayé fprintf(file,"%s",stdin);
et ça n'a pas marché et ce que quelqu'un pourrait m'expliquer pourquoi?
merci
A voir également:

5 réponses

Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
Oui, stdin est de type FILE* et nom de type char* !
le déréférencement de stdin ne donne donc pas une chaine de caractère.
Je pense qu'il faut créer un pipe entre les deux (voir fonction popen() et reopen())
0
Utilisateur anonyme
 
salut char snipeur et merci pour votre aide
j'ai trouvé une solution en faisant ceci:

char buffer[256];
gets(buffer);
fprintf(file,"%10s",buffer); //parce que je veut ecrire une chaine sur 10 caract

ça a marché mais le pb c'est que lorsque je saisie plus de 10 caractère le pb les ecrit toutes
j'ia voulue changé un peut l'allure alors j'ai écrit une fonction:

void read_string(char *s,unsigned int num){ //lecture sécurisé avec vidage du tampon
int c;
fgets(s,num,stdin);
char *p = s + strlen(s) -1;
if(*p = '\n'){ //si fin newline est rencontré
*p = '\0';
}else{ //vider le tampon
c = getchar();
while( (c!=EOF) && (c!='\n') )
c = getchar();
}
}

et après
char buffer[256];
read_string (buffer,20);
fprintf(in,"%-20",buffer);

la lecture se fait très bien avec le nombre max de caractère que je veux
sauf que l'ecriture dans le fichier ne se fait pas
je ne vois pas ou est le pb
si vous avez une idéé j'en suis preneur
0
Utilisateur anonyme
 
auc'un ne peut m'aider?
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

Tu as oublié le s
fprintf(in,"%-20s",buffer); 
0

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

Posez votre question
Utilisateur anonyme
 
woooooooooooow! yess
vous m'avez sauvez la vie
merci infiniment pour votre aide, sans vous je n'aurai jamais le remarquer
et maintenant je peut passer à d'autre chose
merci encore lami
0