web-dev-qa-db-fra.com

C: Comment simuler un EOF?

Je lis actuellement le livre de K&R et je tape les exemples de la première section, et il y a quelques exemples comme celui-ci:

while((c = getchar()) != EOF) {
    //do something
}

Je teste ces exemples sur une boîte Windows et exécute donc les fichiers exe compilés à partir de l'invite cmd.

Pour tester l'exemple ci-dessus, comment simuler un EOF? Autrement dit, comment puis-je arrêter la boucle lors du test de l'exemple à partir de l'invite de commande?

50
Andreas Grech

Pour saisir un EOF, utilisez:

  1. ^ Z (CtrlZ) sous Windows
  2. ^ D sur les systèmes de type Unix
88
Greg Hewgill

Reportez-vous EOF

Windows: Ctrl+Z
Unix :Ctrl+D
21
aJ.

Tout d'abord, appuyez sur: Ctrl ^ X, ensuite: Ctrl ^ D

2
user3078185

Vous pouvez également simuler EOF en donnant explicitement à int variable une valeur de -1.

Consultez ce code pour plus de clarté:

#include<stdio.h>

int main() {    
    // char ch=getchar()
    // int ch=-1;

    if(ch==EOF) { printf("\nEOF: %d",EOF); }
    if((ch!=EOF)==0) { printf("\nit is equal to 0"); }
    if((ch!=EOF)==1) { printf("\nit is equal to 1"); }
    else { printf("\n it is equal to other value"); }
    system("pause");
    return 0;
}
1
Shivam Agarwal