假设我有一个包含 5 次迭代的 for
循环。
每次循环,我都需要输入 string int int 或 string int int int。
也就是说,在每次迭代中,程序都会要求一个字符串和 2 个整数的组合,或者一个字符串和 3 个整数的组合。
如果我写 cin >> (string) s >> (int) a >> (int) b >> (int) c;
我的程序将在我写一个字符串时立即停止,只有 2整数。有什么方法可以更改程序的这一部分吗?
示例输入:
sum 2 3
sub 5 3
sum 1 5 6
sum 2 5 6
sub 1 7
最佳答案
- 逐行读取输入。
- 使用
std::istringstream
处理每一行以产生所需的输出。
std::string line;
while ( getline(std::cin, line) )
{
std::istringstring str(line)
std::string token;
if ( str >> token )
{
std::cout << "string ";
}
int n;
while ( str >> n )
{
std::cout << "int ";
}
}
关于c++ - 如何接受可变数量的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58331746/