Redirection vers un fichier

Résolu/Fermé
Utilisateur anonyme - 13 janv. 2009 à 14:40
 Utilisateur anonyme - 13 janv. 2009 à 19:56
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 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 janv. 2009 à 16:30
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
13 janv. 2009 à 16:49
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
13 janv. 2009 à 19:12
auc'un ne peut m'aider?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 janv. 2009 à 19:26
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
13 janv. 2009 à 19:56
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