一行多个输入

Jos*_*hua 27 c++ input cin

我看起来无济于事,我担心这可能是一个简单的问题,没有人敢问它.

可以从一行中的标准输入输入多个东西吗?我是说这个:

float a, b;
char c;

// It is safe to assume a, b, c will be in float, float, char form?
cin >> a >> b >> c;
Run Code Online (Sandbox Code Playgroud)

Rob*_*obᵩ 28

是的,您可以cin使用您描述的语法输入多个项目.结果基本上与:

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

这是由于一种称为"操作员链接"的技术.

每次调用operator>>(istream&, T)(where T是某种任意类型)都会返回对其第一个参数的引用.所以cin >> a返回cin,可以用作(cin>>a)>>b等等.

请注意,每次调用operator>>(istream&, T)首先消耗所有空格字符,然后消耗满足输入操作所需的字符数,直至(但不包括)第一个下一个空白字符,无效字符或EOF.


小智 6

是的你可以.

来自cplusplus.com:

因为这些函数是运算符重载函数,所以调用它们的常用方法是:

   strm >> variable;
Run Code Online (Sandbox Code Playgroud)

strmistream对象的标识符在哪里,并且variable是作为右参数支持的任何类型的对象.也可以将一系列提取操作称为:

   strm >> variable1 >> variable2 >> variable3; //...
Run Code Online (Sandbox Code Playgroud)

这与从同一对象执行连续提取相同strm.

只需更换strmcin.