变量不在迭代上打印

Jac*_*001 3 c++11

我正在为个人项目编写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

seh*_*ehe 7

啊.我想我明白了:

您似乎忘记从输入中删除换行符.

这将导致最后一列具有尾随'\n',并且由于您总是添加'',因此该空格将覆盖最初打印的i.

在拆分列值之前从输入中删除换行符:)