c++ - 使用 'std::cin>>int>>string' 可以在没有空格的情况下工作吗?

标签 c++

我最近开始学习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 分离并分配为 xfoo 作为 y,给出输出:

x: 420
y: foo

这看起来很方便,但我不确定这是如何工作的,或者这是否是无意的...... 我尝试在网上查找一些资料,但没有成功。任何帮助揭开这个谜团的帮助将不胜感激!

最佳答案

输入运算符>>贪婪。他们将读取尽可能多的与目标类型匹配的字符。

对于输入420foox的输入可以读取三位数字,但是当它找到f时,它将停止读取,留下接下来要读取的输入缓冲区中的 f

关于c++ - 使用 'std::cin>>int>>string' 可以在没有空格的情况下工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61093323/

相关文章:

c++ - OpenCV 将黑色像素从一个垫子添加到另一个垫子。 C++

c++ - 使用 Eclipse : How to add include paths and libraries for all your C/C++ project

c++ - 模板类的复制构造函数

c++ - ffmpeg 问题

c++ - A<int(int)> 是什么意思?这项技术的名称是什么?

c++ - 错误 : reference to overloaded function could not be resolved; did you mean to call it?

c++ - 插入加密U盘后,如何使用WMI找到 'launcher'逻辑盘?

c++ - 可以在堆上分配右值 vector 吗?

c++ - For 遍历模板参数/类型

c++ - Dev C++ 中的过剩错误 "redeclaration of C++ built-in type ` short'”