C++ 一行输入到多个变量

C++ 一行输入到多个变量,c++,c++11,C++,C++11,我试图用空格分隔一行输入,并将其分配给四个变量 我读到你应该能够做到: #include <iostream> #include <string> int main() { int i, n1, n2; std::string s; std::cin >> i >> s >> n1 >> n2; } 对于输入:12345字符串4 5,结果将是i=12345,s=string,n1=4,n2=5 但

我试图用空格分隔一行输入,并将其分配给四个变量

我读到你应该能够做到:

#include <iostream>
#include <string>

int main()
{
    int i, n1, n2;
    std::string s;
    std::cin >> i >> s >> n1 >> n2;
}
对于输入:12345字符串4 5,结果将是i=12345,s=string,n1=4,n2=5


但我必须为每个变量按enter键。我需要一行代码来分配这四个变量。

这段代码已经可以工作了。编译并运行它,然后在程序等待输入时键入: 12345字符串4 5,输入完成。

来自:

cin上的提取也可以链接到单个语句中请求多个数据:

cin>>a>>b

这相当于:

1 cin>>a; 2 cin>>b

在这两种情况下,用户都需要引入两个值,一个用于变量a,另一个用于变量b。任何类型的空间用于分隔两个连续的输入操作;这可以是空格、制表符或新行字符


为什么每个变量都必须按enter键?当您在一行中输入它们时会发生什么?我不知道为什么,但我在终端中使用了-std=c++11,这似乎就是问题所在?在我尝试将输入写入一行之前,当我输入时,它会要求另一行,但现在它似乎正在运行。-std=c++11不应该更改此程序的行为。还有别的事。如果输入12345字符串4 5并按return键,会发生什么情况?i、s、n1和n2的值是多少?@Lachlan:C++11和早期版本在这方面应该没有区别。一般来说,尽量使您发布的任何代码示例都是独立的,即使我们能够看到与您相同的结果,以避免它现在起作用,我不知道为什么会出现这种情况。这也使我们能够准确地向您展示哪些代码修改使其工作。看看哪一个更有道理。@DevSolar你是对的,我不知道是什么改变了它。我的错。