C语言判断文件为空问题

RT.if(feof(fp){
printf("文件内容为空,请先输入,按任意键返回");
system("pause");}这样为什么不能判断是否为空?

在“C”文件读取操作时不能完全依赖于“while(!feof(FP)){...}”的判断。下面代码是改进后的代码,该代码执行后output文件内容和input文件内容一致,与使用“while(!feof(FP)){...}”相比,input文件的结尾符号(EOF)没有被读入到output文件中。
  //main.c linux 下编译通过。
  int main(void)
  {
  FILE *in, *out;
  char ch;
  if ((in = fopen("./input.txt", "r"))== NULL) //input.txt must exist in current directory.
  {
  fprintf(stderr, "Cannot open inputfile\n");
  exit(0);
  }
  if((out=fopen("./output.txt","w"))==NULL)
  {
  fprintf(stderr,"Can not open the file.\n");
  exit(0);
  }
  while(1)
  {
  ch=fgetc(in);
  if(ch == -1)
  break;
  fprintf(stdout,"The ASC of char %c is %d\n ",ch,ch);
  fputc(ch,out);
  }
  fclose(in);
  fclose(out);
  return 0;
  }
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言如何判断文档为空?
c语言如何判断为空可用读文件操作函数的返回值来判定,如:函数: int fgetc(FILE *stream); \/\/从参数stream 所指的文件中读取一个字符. 若读到文件尾而无数据时便返回EOF.当以读方式打开文件后,第一次使用fgetc()就返回EOF,则表明文件是空文件。参考代码:include <stdio.h>void main(){FILE ...

C语言怎么判断文件为空啊
即文件指针的值等于NULL是空文件

C语言怎么判断一个文件是否为空
如果为空是指文件长度为0的话:if((fp=fopen("FileName","rb"))==NULL){exit(1);} fseek(fp,0L,SEEK_END);len=ftell(fp);if(len==0){ \/*文件为空*\/ }

C语言怎么判断文件是否为空
文件为空时 只有文件结束符EOF 当读取第一个字符是EOF时即可判断文件是不是空 include <stdio.h> include <stdlib.h> void main(){ FILE *fp;char ch;if((fp=fopen("1.txt","r"))==NULL){ printf("Error!\\n");exit(0);} ch=fgetc(fp);if(ch==EOF)printf("文件为空\\n");else...

怎样判断一个文本文件为空,只用C语言,不用C++
只用C,有这几种方法:1. 打开文件,获取长度,判断长度,长度为0,那文件肯定为空。可以用fseek(fp, 0L, SEEK_END ); 然后ftell读取位置,这个位置就是文件长度。2. 打开文件,读取文件,如果读取的长度为0,文件也一定为空 3. 用stat()函数来获取文件状态,判断里面的st_size就可以了,这个...

为何输出文件是空的,c语言程序
if (!fp){perror("cannot open file");for (j = 0; j < 99; j++){for (i = 0; i < 99; i++){fprintf(fp, "%f ", u[i][j]);}}fputc('\\n', fp);}上述代码的逻辑错了:文件没有打开时写文件,文件打开了就跳过写文件语句段了,所以文件一直被写入数据……...

c语言第一次弄fwrite,但是运行后我打开文件看里面是空的。为什么
fwrite (&s, sizeof(s), 100, pFile );} 这么写正常的话是应该输入 100 次的.之所以一次就退出是因为 fwrite (&s, sizeof(s), 100, pFile ); &s 应该是 s[i]. s本身已经是指针了.错误导致 再按任意键结束了。 没有 fclose 所以文件里什么都没有....

c语言 读取文件不存在的问题
首先应该清楚,文件不存在并不会报出““...”指令应用的“...”内存”这样的错误,这是你应用程序的问题。如果想要判断文件是否存在,请检查fopen的返回值是否为NULL,为NULL即出错,然后通过errno全局变量(或函数)来检查具体的错误码,再根据错误码来显示具体的错误信息。

C语言编程之怎样判断某一文件是否存在
cout << "文件不存在" << endl;} else { cout << "文件存在" << endl;} return 0;} 第二种方法利用C语言库函数`access()`,根据参数确定文件的访问权限。函数调用格式:c++ int access(const char *filename, int amode);通过`access(filename, 0)`判断文件是否存在,返回值为0表示文件...

怎样让c语言判断文件是否存在
FILE * fp;fp=fopen("h:\\\\abc\\\\x.txt","r");if(fp==NULL){ \/\/不存在 } else { fclose(fp);} 可以把上述代码封装成一个函数。其实也可以考虑用Windows api 来进行判断

相似回答