C/File/File End
Содержание
Check if End Of File has been reached: how to use feof
<source lang="cpp">
- 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;
}
</source>
Copy a file: how to use feof
<source lang="cpp">
- 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;
}
</source>
Read and check if the file end has been reached
<source lang="cpp">
- 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;
}
</source>
Reads files and displays them on the screen: use EOF
<source lang="cpp">
- 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;
}
</source>