【问题标题】:Re-setting an istringstream object重新设置 istringstream 对象
【发布时间】:2015-05-31 04:14:15
【问题描述】:

当我运行这段代码时:

for (int i = 0; i < indexArray.size(); i++) {

                iss.str(indexArray.at(i));
                iss>>one;
                iss>>two;
                iss>>three;
                cout<<one<<" "<<two<<" "<<" "<<three<<" "<<"\n";
}

istreamstream (iss) 在每次迭代时都保持不变。 (该文件在程序开始时被读入向量。是的,我检查以确保数组具有相应的数据。)

换句话说,我得到这个输出:

12345 1  0 
12345 1  0 
12345 1  0 

而文件/向量实际上说:

12345 1 0
12346 1 25
12543 1 50

我尝试了各种跟踪,但无法确定问题所在。谢谢!

【问题讨论】:

    标签: c++ for-loop vector istringstream


    【解决方案1】:

    在重用istringstream 时,您应该在iss.str(indexArray.at(i)); 之前调用iss.clear(); 以清除EOF 标志。

    【讨论】:

    • 谢谢,这就是问题所在!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2021-10-21
    • 2019-02-27
    相关资源
    最近更新 更多