我是 C++ 的新手,可能有一个愚蠢的问题。我有一个 ifstream,我想将其大致分成两半。
有问题的文件是一个排序的 csv,我希望搜索文件每一行的第一个值。
最终文件会非常大,所以我尽量避免读取文件的每一行。
例如
如果文件包含 7 行,我想将 ifstream 拆分为 1 个包含前 3 行的流和 1 个包含最后 4 行的流。
最佳答案
首先,使用 this question 的答案以确定文件的大小。然后将该数字除以二。逐行读取输入,写入第一个输出流;每次调用后检查 file.tellg()
。过了中途点后,将输出切换到第二个文件。
这不会在文件之间平均拆分字符串,但这些字符串中的字符总数应该足够接近,并且不会在字符串中间拆分您的文件.
关于c++ - 在 C++ 中拆分 ifstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8602923/