我最近开始学习C++,我正在尝试使用cout和cin,代码如下:
#include <iostream>
using namespace std;
int main()
{
int x = 0;
string y;
cin >> x >> y;
cout << "x: " << x << '\n';
cout << "y: " << y << '\n';
}
我被告知,输入必须用空格分隔,这样的东西才能工作。但是,当我在控制台中输入类似 420foo
的内容时,cin 可以完美地将 420
分离并分配为 x
和 foo
作为 y
,给出输出:
x: 420
y: foo
这看起来很方便,但我不确定这是如何工作的,或者这是否是无意的...... 我尝试在网上查找一些资料,但没有成功。任何帮助揭开这个谜团的帮助将不胜感激!
最佳答案
输入运算符>>
是贪婪。他们将读取尽可能多的与目标类型匹配的字符。
对于输入420foo
,x
的输入可以读取三位数字,但是当它找到f
时,它将停止读取,留下接下来要读取的输入缓冲区中的 f
。
关于c++ - 使用 'std::cin>>int>>string' 可以在没有空格的情况下工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61093323/