C/File/File End
Версия от 14:20, 25 мая 2010; (обсуждение)
Содержание
Check if End Of File has been reached: how to use feof
#include <stdio.h>
int main ()
{
FILE * pFile;
long n = 0;
pFile = fopen ("my.txt","rb");
if (pFile==NULL)
perror ("Error opening file: my.txt");
else
{
while (!feof(pFile)) {
fgetc (pFile);
n++;
}
fclose (pFile);
printf ("Total number of bytes in my.txt: %d\n",n);
}
return 0;
}
Copy a file: how to use feof
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *in, *out;
char ch;
if(argc!=3) {
printf("You forgot to enter a filename.\n");
exit(1);
}
if((in=fopen(argv[1], "rb"))==NULL) {
printf("Cannot open source file.\n");
exit(1);
}
if((out=fopen(argv[2], "wb")) == NULL) {
printf("Cannot open destination file.\n");
exit(1);
}
/* This code actually copies the file. */
while(!feof(in)) {
ch = getc(in);
if(!feof(in)) putc(ch, out);
}
fclose(in);
fclose(out);
return 0;
}
Read and check if the file end has been reached
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
char ch;
if((fp = fopen(argv[ 1 ], "r")) == NULL) {
printf("Cannot open file.\n");
exit(1);
}
while((ch=getc(fp))!=EOF) {
printf("%c", ch);
}
fclose(fp);
return 0;
}
Reads files and displays them on the screen: use EOF
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
char ch;
if(argc!=2) {
printf("You forgot to enter the filename.\n");
exit(1);
}
if((fp=fopen(argv[1], "r"))==NULL) {
printf("Cannot open file.\n");
exit(1);
}
ch = getc(fp); /* read one character */
while (ch!=EOF) {
putchar(ch); /* print on screen */
ch = getc(fp);
}
fclose(fp);
return 0;
}