C/File/File End

Материал из C\C++ эксперт
Версия от 10:22, 25 мая 2010; Admin (обсуждение | вклад) (1 версия: Импорт контента...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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;
}