有没有办法控制cin,所以我可以测试这个功能?
void foo() {
int n;
cin >> n;
}
我想做
int main()
{
// take control of cin and use a stringstream instead
stringstream ss;
1 >> ss;
s >> foo(); // will for sure not work?
}
注意:表示完整性是最终代码:
struct membuf : std::streambuf
{
membuf(char* begin, char* end) {
this->setg(begin, begin, end);
}
};
int main()
{
char buffer[] = "3\0";
membuf sbuf(buffer, buffer + sizeof(buffer));
std::istream in(&sbuf);
foo(in);
}
void foo(std::istream& iss = std::cin)
{
int n; // number of students
iss >> n;
}
答案 0 :(得分:1)
以下是将流作为参数并默认为cin
的代码:
void foo(std::istream& iss = std::cin) {
int n;
iss >> n;
}
现在是否优先选择例如管道很大程度上取决于将要使用的功能环境,因此需要更多地了解您的具体情况。