gpt4 book ai didi

c - fgets 读取 .csv 文件中超出行尾的内容

转载 作者:行者123 更新时间:2023-11-30 17:20:05 26 4
gpt4 key购买 nike

我有一个来自 Excel 的文件,该文件已另存为 .csv 文件。在 Word 或文本编辑器中打开文件时,每条记录都会按预期显示在新行中。

现在,我正在使用 fgets(line, sizeof line, fp);
读取文件使用 fgets,传入的行字符串会继续超出每个 .csv 行的末尾。并继续到我用 sizeof 设置的值。但我需要知道 .csv 文件中结束的行末端的长度。我究竟做错了什么?也许我需要添加一个新行字符,或者我是否缺少有关 fgets 函数的内容。

如何解决这个问题?

最佳答案

微软产品会破坏带有换行符结尾的文本文件。尤其是Excel。即使您不保存,它也会通过打开文件来逐字修改您的文件,特别是所有换行符。 (除非他们在过去几年里解决了这个问题......)

您应该完全避免使用 Excel 来处理您想要处理的任何文件,至少在所有可能的处理完成之前是这样。

有一个选项可能会有所帮助。当您 fopen() 文件时,以二进制模式打开它。 “rb”或“wb”作为模式,而不是“r”或“w”。

对于 GNU 和 POSIX,文本模式和二进制模式之间没有区别,但它可能有助于处理 Microsoft 系统正在处理的文件。

http://www.gnu.org/software/libc/manual/html_node/Binary-Streams.html#Binary-Streams

关于c - fgets 读取 .csv 文件中超出行尾的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com