只是想知道scan()C++中是否有可能有一个函数(比如或者其他)做与std::cin语法相同的事情?
std::cin >> data; // or
scan(data);
Run Code Online (Sandbox Code Playgroud)
在C++ 17中,您可以使用可变参数模板和折叠表达式来创建一个函数,该函数接受任意数量的参数并cin >> a >> b >> c >> ...为您生成链:
template <typename... Ts>
std::istream& scan(Ts&... xs)
{
return (std::cin >> ... >> xs);
}
Run Code Online (Sandbox Code Playgroud)
用法:
int i;
double j;
scan(i);
scan(i, j);
if (scan(i, j))
std::cout << "Read " << i << ", " << j << "\n";
else
std::cout << "Invalid input\n";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |