我正在测试需要几个控制台命令才能执行的功能。不必每次我想测试特定方法的功能时都键入这些命令,我希望能够在我的源代码中粘贴一两行代码,有效地执行与键入命令相同的操作. 我尝试了以下代码,但似乎它只是无限循环。
streambuf *backup;
backup = cin.rdbuf();
stringbuf s = stringbuf("1 a 1 b 4 a 4 b 9");
cin.rdbuf(&s);
cin.rdbuf(backup);
以下代码对我很有效
#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;
}