C++ istream 永远运行

C++ istream runs forever

提问人:PotatoChip1172 提问时间:6/11/2020 最后编辑:PotatoChip1172 更新时间:6/11/2020 访问量:63

问:

我是一个初学者,对我怎么仍然没有得到它感到失望。 我需要帮助..

MAIN==
    ifstream infile("new.txt");
    if (!infile) return -1;

    Class classObj;
    infile >> classObj;
Class.h
    public:
        friend istream& operator>>(istream & input, Class cObj);
Class.cpp
    istream& operator>>(istream & input, Class cObj){

    string temp;
    while(temp!="TEST6"){
        getline(input, temp, ',');
        if(temp=="TEST1") cObj.setA(temp);
        if(temp=="TEST3") cObj.setB(temp);
        if(temp=="TEST5") cObj.setC(temp);
        if(temp=="TEST6") cObj.setD(temp);
    }

    return input;
}
new.txt==

TEST1,TEST2,TEST3,TEST4,TEST5,TEST6

我是一些随机的文字对不起

C++ IOstream istream

评论

2赞 Retired Ninja 6/11/2020
鉴于您的示例文本,怎么会是一个字符串?tempT
0赞 PotatoChip1172 6/11/2020
我的错..我想在找到字符串“TEST6”后结束它
0赞 drescherjm 6/11/2020
您应该将这两行合并为while(temp!="TEST6"){ getline(input, temp, ',');while (temp!="TEST6" && getline(input, temp, ',')) {
0赞 001 6/11/2020
快速测试似乎有效:ideone.com/cmFrr9
1赞 001 6/11/2020
“TEST6”后面是否有空格(如空格或换行符)?如果是这样,那将导致您的错误。

答: 暂无答案