如果我们有这段代码:
int a;
cout << "please enter a value: ";
cin >> a;
在终端中,输入请求看起来像这样
please enter a value: _
最佳答案
以下是使用
rdbuf()
函数操作cin输入缓冲区的示例,以从std :: istringstream检索伪输入
#include
另一个选择(更接近Joachim Pileborg在his comment恕我直言中所说的)是将你的阅读代码放入一个单独的功能,例如:
int readIntFromStream(std::istream& input) {
int result = 0;
input >> result;
return result;
}
这使您可以对测试和生产进行不同的调用,例如
// Testing code
std::istringstream iss("42");
int value = readIntFromStream(iss);
// Production code
int value = readIntFromStream(std::cin);