[英]Writing and reading CSV file in C wierd output
我是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);
}
这里:
while (getc(fp) != EOF) {
printf("%c", getc(fp));
}
您每次在循环中都两次调用getc()
,但仅输出一个字符。 这样您就可以节省一半的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.