gpt4 book ai didi

c - 在 C 中读取文本文件的好方法

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:51 24 4
gpt4 key购买 nike

我需要读取一个可能包含长行文本的文本文件。我正在考虑最好的方法来做到这一点。考虑到效率,即使我在C++中这样做,我仍然会选择C库函数来做IO。

因为我不知道一行有多长,可能真的很长,所以我不想分配一个大数组然后使用 fgets 来读取一行。另一方面,我确实需要知道每一行的结束位置。这样的一个用例是计算每行中的单词/字符。我可以分配一个小数组,用fgets读取,然后判断是否有\r, \n, 或者\r\n 出现在行中以告知是否已读取整行。但这涉及到很多strstr调用(对于\r\n,或者有更好的方法?例如从fgets的返回值?)。我也可以执行 fgetc 来一次读取每个单独的字符。但是这个函数有缓冲吗?

请建议比较这些或其他完成此任务的不同方法。

最佳答案

执行 I/O 的正确方法取决于您要对数据执行的操作。如果您正在计算单词,基于行的输入没有多大意义。一种更自然的方法是使用 fgetc 并一次处理一个字符,让 stdio 担心缓冲。只有当您同时需要内存中的整行来处理它时,您才应该实际分配一个足够大的缓冲区来包含所有内容。

关于c - 在 C 中读取文本文件的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057625/

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