一行多个输入

时间:2011-09-15 02:46:15

标签: 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;

2 个答案:

答案 0 :(得分:24)

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

相同
cin >> a;
cin >> b;
cin >> c;

这是由于一种称为“操作员链接”的技术。

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

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

答案 1 :(得分:6)

是的,你可以。

来自cplusplus.com

  

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

   strm >> variable;
     

其中strm是istream对象的标识符,variable是支持作为右参数的任何类型的对象。也可以将一系列提取操作称为:

   strm >> variable1 >> variable2 >> variable3; //...
     

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

只需将strm替换为cin