尾随\ n当我使用fgetc时

时间:2014-03-19 11:29:04

标签: c file io

我写了一个简单的函数来读取文本文档并按原样打印它。但是我在输出中看到一些尾随\ n。我无法找出原因。

void read_file(FILE* fp , char* s)
{
  int i=0;
  char c;
  while( (c=fgetc(fp)) !=EOF )
  {
    s[i]=c;
    //fseek(fp,1,SEEK_CUR);
    i++;
  }
  printf("%d is length of file\n",i);
  s[i]='\0';

  printf("%s",s);
}

我的文字文件包含

  

     

这里

1 个答案:

答案 0 :(得分:0)

首先:您需要将c声明为intfgetc的返回值为int,因为char通常不足以容纳EOF

在输出中获取尾随换行符的原因是因为c不是int,或者因为您的输入文件包含尾随换行符。