I want to make a while loop that is continually asking a user for input until the user ctrl-d\'s out of it. How can I do this correctly? I am using this ri
You have to test for EOF, which is what CTRL-D returns.
So do this:
while ( fgets( ... ) != NULL ) {
...
}
EDIT:
Since you're prompting, even better would be:
for ( ;; ) {
printf( "enter input: " );
fflush( NULL ); // make sure prompt is actually displayed, credit Basile Starynkevitch
if ( fgets( input, ... ) == NULL ) break;
// handle input here
}
A ctrl-d will send an EOF
(end of file) character, which translates in fgets
as a NULL
pointer :
while (fgets(user_input, 1000, stdin) != NULL) {
// do stuff...
}
// no more user input