gpt4 book ai didi

c - 读到换行

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:35 24 4
gpt4 key购买 nike

嗨我的程序读取 CSV 文件。所以我使用 fgets 一次读取一行。但是现在接口(interface)规范说可以在少数列中找到 NULL 字符。所以我需要用另一个函数替换 fgets 以从文件中读取有什么建议吗?

最佳答案

如果您的文本流有一个NUL (ascii 0) 字符,您需要将您的文件作为二进制文件处理并使用fread 来读取该文件。有两种方法。

  1. 将整个文件读入内存。可以通过fseek(fp, 0, SEEK_END)获取文件的长度,然后调用ftell。然后可以为整个文件分配足够的内存。一旦进入内存,解析文件应该比较容易。这种方法仅适用于较小的文件(最大可能小于 50M)。如需加分,请查看 mmap 函数。

  2. 逐字节读取文件并将字符添加到缓冲区,直到找到换行符。

  3. 逐位读取和解析。创建一个比你最大的行最大的缓冲区,并用你的文件中的内容填充它。然后,您可以解析并提取尽可能多的行。将余数添加到新缓冲区的开头并读取下一位。使用更大的缓冲区将有助于最大限度地减少复制。

关于c - 读到换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4545810/

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