2017-05-25 6 views
0

I entrée Ctrl-D (EOF) quand appelé scanf(), puis scanf ignoré.I entrée Ctrl-D (EOF) quand appelé scanf(), puis scanf ignoré

#include <stdio.h> 

int main() 
{ 
    int input; 
    scanf("%d", &input);//I press Ctrl-D when this line 
    scanf("%d", &input);//this line just passed. not read my input. why? 
    return 0; 

} 

Je veux obtenir une entrée avec scanf() second appelé. Quel est le problème?

+1

Qu'espériez-vous qu'il se passerait - il essaierait de lire après EOF? – InternetAussie

+0

@InternetAussie Je ne veux pas lire après EOF, je viens de lire stdin. –

+2

@ 임근영 'EOF' signifie ** E ** nd ** O ** f ** F ** ile, c'est-à-dire, la fin du flux d'entrée qui implique qu'il n'y a plus de données à lire depuis' stdin '. –

Répondre

0

il semble que votre code est OK. Le seul réflexe est de ne pas oublier d'appuyer sur "return" à la fin des deux entrées. Je réécris votre code d'une «meilleure» manière:

#include <stdio.h> 
int main(){ 

int input1,input2; 
printf("Digit the first number: "); 
scanf("%i", &input1);//Press return at the end 
printf("Digit the second number: "); 
scanf("%i", &input2);//Press return at the end 
printf("input1:%i\tinput2:%i\n",input1,input2); 
return 0; 
}