itemprop="text">
int main ()
{
FILE
*in;
in = fopen("input.txt","r");
char c =
fgetc(in);
while(feof(in) != EOF)
{
printf("%c",c);
c = fgetc(in);
}
}
feof(in)
!= EOF
doesn't stop the while loop from stopping but something like
!feof(in)
seems to work. Any ideas?
feof
doesn't return EOF
on end of file; it returns
true
, which is not equal to EOF
.
fgetc
will return EOF
when it hits end-of-file.
Your code should be written as
int
main ()
{
FILE *in;
in =
fopen("input.txt","r");
int c = fgetc(in); // note int not char
while(c != EOF) // compare c to EOF
{
printf("%c",c);
c = fgetc(in);
}
}
You
should not use feof
as a loop condition, as it won't return
true
until after you attempt to read past
the end of the file, meaning your loop will execute once too often.
No comments:
Post a Comment