我有一个我打开过的文件:
ifstream ifile(FilePath)
该文件包含10行数据,每行包含一个均匀递增的逗号分隔值(如金字塔)。所以第一行有1个值,第二行有2个值,依旧......
我想在一个函数内执行以下操作(同时遍历文件char数组一次):
- 每次遇到换行符时,我都可以递增一个按值传入的参数(当函数退出时,我有文件中的行数)。
- 我还希望将文件的每一行存储在一个数组中。将换行符之间的所有字符“粘合”在一起的最佳方法是什么?
我更喜欢使用静态分配的数组,但问题是我只知道执行第1步后数组的大小(计算有多少新行字符)。是否可以更快地执行双解析(一个解析计算多少行,然后使用该值来分配静态数组)或单个解析,但插入动态数组?
对此的强调是编写快速代码(因此不是OO友好不是一个问题)
道歉,如果我问了很多,希望你能看到我已经考虑过这个。
编辑,示例文件:
一
B,C
d,E,F,G,H
J,K,L,M,N,O,P
从这个文件中我想实现:
答案 0 :(得分:0)
现有帖子中有很多关于如何做到这一点的例子。
如果你想使用ifstream读取文件一次,你可以这样做:
std::ifstream in("myfile");
std::stringstream buffer;
buffer << in.rdbuf();
std::string contents(buffer.str());