我正在为个人项目编写C++ CSV类,但偶然发现了一个奇怪的错误.在我的测试程序中,我有代码:
for( int i = 0; i < 3; ++i ) {
std::cout << i << ": ";
std::vector<std::string> results = test.get_row();
for( auto it = results.begin(); it != results.end(); ++it ) {
std::cout << *it << " ";
}
std::cout << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
得到结果:
: row0 row1 row2
: blah0 blah1 blah2
2: blah3 blah4 blah5
Run Code Online (Sandbox Code Playgroud)
但我应该得到:
0: row0 row1 row2
1: blah0 blah1 blah2
2: blah3 blah4 blah5
Run Code Online (Sandbox Code Playgroud)
关于为什么我没有i在前两次运行中获得价值的任何想法?
注意:我正在使用g ++ 4.4.7
啊.我想我明白了:
您似乎忘记从输入中删除换行符.
这将导致最后一列具有尾随'\n',并且由于您总是添加'',因此该空格将覆盖最初打印的i.
在拆分列值之前从输入中删除换行符:)
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |