我想阅读文本文件中的每个元素,包括换行和空格。这是我的代码
void test3()
{
char a;
FILE *csv;
csv=fopen64("C:\\Users\\Md. Akash\\Desktop\\csv\\Book1.csv","r");
int i;
for(i=0;;i++)
{
if(fgetc(csv)==EOF)
break;
a=fgetc(csv);
printf("%c",a);
}
}
此代码跳过一个字符。
答案 0 :(得分:1)
尝试将 for循环替换为以下内容:
/*
Note:
a = fgetc(csv) returns a character from the file pointed to by **csv** o returns **EOF** if the End Of File is reached.
Therefore, it is probably a good idea to read every character from the file until the EOF is reached.
The following **while** loop demonstrate just that.
*/
while((a =fgetc(csv)) != EOF){
printf("%c", a)
}
答案 1 :(得分:1)
您在fgetc
循环的每次迭代中两次调用for
。而且您不会打印第一次获得的内容。
更改:
if(fgetc(csv)==EOF)
break;
a=fgetc(csv);
printf("%c",a);
收件人:
if((a = fgetc(csv))==EOF)
break;
printf("%c",a);
注意::fgetc
返回一个int
。因此,a
应该定义为int
。