我写了一个简单的函数来读取文本文档并按原样打印它。但是我在输出中看到一些尾随\ 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);
}
我的文字文件包含
我
这里
答案 0 :(得分:0)
首先:您需要将c
声明为int
。 fgetc
的返回值为int
,因为char
通常不足以容纳EOF
。
在输出中获取尾随换行符的原因是因为c
不是int
,或者因为您的输入文件包含尾随换行符。