我正在尝试编写一个函数,该函数从txt文件中读取单独的行并将它们存储在字符串数组中。除了读取空行时,该功能正常工作。例如:
功能
ifstream flinput( "somefile.txt" )
string line;
while( getline(flinput, line) ) {
//Add line to array
所以问题是文本文件是这样的。
Line1 Some Text blar blar blar
\n
Line3 Some Text blar blar blar
\n
Line5 Some Text blar blar blar
阵列最终看起来像这样。
array[0] = "Line1 Some Text blar blar blar"
array[1] = "Line3 Some Text blar blar blar"
array[2] = "Line5 Some Text blar blar blar"
什么时候应该是这样的。
array[0] = "Line1 Some Text blar blar blar"
array[1] = ""
array[2] = "Line3 Some Text blar blar blar"
array[3] = ""
array[4] = "Line5 Some Text blar blar blar"
我做错了什么?
由于
答案 0 :(得分:3)
来自getline文档...
如果找到分隔符,则将其提取并丢弃,即不存储分隔符,并且在其之后开始下一个输入操作。如果您不希望提取此字符,则可以使用member get。
因此,您的代码正在完全按照预期执行。如果要保存\ n。
,则必须使用文档建议手动解析Get答案 1 :(得分:0)
您的代码适用于Linux系统上的gcc 4.3.2。我认为应该。
答案 2 :(得分:0)
使用迭代器here's例如:
会更简单