c - 在 C 奇怪的输出中写入和读取 CSV 文件

标签 c csv printf

我是 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);
}

关于c - 在 C 奇怪的输出中写入和读取 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40719967/

相关文章:

azure - 如何使用 Azure 数据工厂将 CSV 转换为嵌套 JSON 数组?

C:带有 printf 的代码与没有 printf 的代码的区别

c - 具有指针、常量和字符串格式的 Sprintf

c - 将代码作为函数参数传递,而不是声明回调

c - 如何允许 `else-if` 之间的标签?

windows - 在命令行或通过批处理文件将 CSV 文件导入 Sqlite3 数据库

Java:For循环不显示计数器

c - AC_SEARCH_LIBS 没有找到我的图书馆

c - 有没有一种方法可以在不执行这样的循环的情况下分配数组?

python - 将解析后的 csv 文件自动读取为字符串转换为 pandas 数据框