0

我正在测试需要几个控制台命令才能执行的功能。不必每次我想测试特定方法的功能时都键入这些命令,我​​希望能够在我的源代码中粘贴一两行代码,有效地执行与键入命令相同的操作. 我尝试了以下代码,但似乎它只是无限循环。

streambuf *backup;
backup = cin.rdbuf();
stringbuf s = stringbuf("1 a 1 b 4 a 4 b 9");
cin.rdbuf(&s);
cin.rdbuf(backup); 
4

1 回答 1

2

以下代码对我很有效

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {

    istringstream iss("1 a 1 b 4 a 4 b 9");
    cin.rdbuf(iss.rdbuf());
    int num = 0;
    char c;
    while(cin >> num >> c || !cin.eof()) {
        if(cin.fail()) {
            cin.clear();
            string dummy;
            cin >> dummy;
            continue;
        }
        cout << num << ", " << c << endl;
    }
    return 0;
}
于 2014-07-17T19:04:54.467 回答