What does “end of file” mean in C?
Question
#include <stdio.h>
main()
{
int c;
while ((c = getchar()) != EOF)
putchar(c);
}
In the above code, which character will break the loop?
I am new to C, please help me.
Also, what is it meant by this error:
codec5.c:8:2: warning: no newline at end of file
Solution
The error is solved by putting a newline at the end of the file (put the cursor behind the }
and press enter).
I think the loop is broken with Ctrl+Z, but I'm not sure about that.
OTHER TIPS
The warning just means that you need to have a new line at the end of your source code. Put your cursor at the last }
in your file at the end of main()
and press enter.
You need to check for a specific character to end the program if you are not loading from a file. If you pipe (|
) (<
in Windows) a file into your program, then the program should end. If your program is named test.exe
and your input file is foo.txt
, try running test.exe < foo.txt
(make sure they are in the same directory).
It is a special constant defined in stdio.h
which means the end of the file.
codec5.c:8:2: warning: no newline at end of file
Sounds like you don't have a \n
at the end of your file :)