我是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
提前致谢
答案 0 :(得分:5)
因为您正在循环条件下读取一个字符(因此在打印时会打印出所有其他字符),并在打印时读取另一个字符。试试这个:
int ch;
while ((ch=getc(fp)) != EOF) {
printf("%c", ch);
}
答案 1 :(得分:3)
下面:
while (getc(fp) != EOF) {
printf("%c", getc(fp));
}
您每次通过循环调用getc()
两次,但只打印一个字符。因此,你可以获得半小时的工作时间。