Mettre STDIN sur entrée clavier [Résolu/Fermé]

Signaler
Messages postés
671
Date d'inscription
mardi 6 octobre 2009
Statut
Membre
Dernière intervention
16 décembre 2015
-
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
-
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.

2 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 742
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.
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
54
"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