Mettre STDIN sur entrée clavier

Résolu/Fermé
Sara426 Messages postés 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 - 20 déc. 2012 à 09:30
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 - 30 déc. 2012 à 19:05
Bonjour,

Je voudrais remettre STDIN sur la saisie au clavier.

Quand j'exécute mon programme je le lance avec < :
par exemple : ./prog < test

Du coup mon STDIN change et j'ai un problème avec les scanf après.

Comment est-ce que je peux rechanger le STDIN pour repartir sur l'entrée au clavier ?

Cordialement,
Sara.

A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 déc. 2012 à 19:47
Bonjour,
Cela n'a rien à voir avec le C, il s'agit du comportement normal du shell.
Tu mets < test, cela signifie que tu fais une redirection de stdin sur le fichier test. Si tu enlever ce comportement, il te suffit de faire : ./prog tout simplement.
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
30 déc. 2012 à 19:05
"cela signifie que tu fais une redirection de stdin sur le fichier test"
plutôt
"Cela signifie que tu redirige ton fichier dans l'entrée standard (stdin)"

Ainsi si :
?> cat test
ls
cd
ls

Quand tu lanceras ton programme c'est comme si tu avais tappé toi même dans stdin les commandes l'une après l'autre.

Donc
./prog
ls\n
(...)
cd\n
(...)
ls\n
(...)

<=>
./prog < test
0