在C语言输出中写入和读取CSV文件
问题描述:
我是C语言的新手,我试图将数据保存为.csv并在一个非常简单的程序中读取相同的数据。在C语言输出中写入和读取CSV文件
char c;
FILE *fp;
fp = fopen("file.csv", "w+");
fprintf(fp, "Hello;World\nLine");
fclose(fp);
fp = fopen("file.csv", "r");
while (getc(fp) != EOF) {
printf("%c", getc(fp));
}
fclose(fp);
我不知道为什么输出是错误的:
el;ol
ie
在此先感谢
答
因为你正在阅读的字符在循环条件(所以它打印出每隔一个当打印时),并在打印出时读取另一个。试试这个:
int ch;
while ((ch=getc(fp)) != EOF) {
printf("%c", ch);
}
+0
哦,当然!感谢您指出这一点 –
+0
与EOF比较,'int ch;'而不是'char ch;' – BLUEPIXY
答
这里:
while (getc(fp) != EOF) {
printf("%c", getc(fp));
}
您通过循环每次打电话getc()
两次,但只打印一个字符。所以你得到了半个月的时间。
'getc(fp)!= EOF':在输入字符中丢弃。 – BLUEPIXY