Redirection vers un fichier
Résolu/Fermé
A voir également:
- Redirection vers un fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
5 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 janv. 2009 à 16:30
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())
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())
Utilisateur anonyme
13 janv. 2009 à 16:49
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
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
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 569
13 janv. 2009 à 19:26
13 janv. 2009 à 19:26
Salut,
Tu as oublié le s
Tu as oublié le s
fprintf(in,"%-20s",buffer);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
13 janv. 2009 à 19:56
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
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