我看起来无济于事,我担心这可能是一个简单的问题,没有人敢问它。
可以在一行中输入标准输入的多个内容吗?我的意思是:
float a, b;
char c;
// It is safe to assume a, b, c will be in float, float, char form?
cin >> a >> b >> c;
答案 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)
是的,你可以。
因为这些函数是运算符重载函数,所以调用它们的常用方法是:
strm >> variable;
其中
strm
是istream对象的标识符,variable
是支持作为右参数的任何类型的对象。也可以将一系列提取操作称为:strm >> variable1 >> variable2 >> variable3; //...
与从同一对象
strm
执行连续提取相同。
只需将strm
替换为cin
。