什么是C++中的cin运算符顺序

con*_*ong 2 c++

我在C++中有关于cin和cout顺序的问题,例如:

int a,b;
std::string c;
std::cin >> a >> b >> c >> c >> a;
std::cout << a << " " << b << " " << c << " " << a;
Run Code Online (Sandbox Code Playgroud)

如果输入是"5 10 hello world 15 20",输出是什么,我可以看到结果,但任何人都能解释一下它是如何工作的吗?cin赋值5变量,但输入是6个值,cin和cout的顺序是什么?

Naw*_*waz 7

输出将是:

15 10 world 15
Run Code Online (Sandbox Code Playgroud)

std::cin 首先从左侧读取数据到第一个变量,然后将数据读入第二个变量,依此类推.

std::cin >> a >> b >> c >> c >> a;
Run Code Online (Sandbox Code Playgroud)

相当于以下内容:

std::cin >> a; //reads 5
std::cin >> b; //reads 10
std::cin >> c; //reads hello
std::cin >> c; //reads world
std::cin >> a; //reads 15
Run Code Online (Sandbox Code Playgroud)

阅读后看15,它没有读20,因为没有更多std::cin >> variable.