在C++中,Cin如何使用1行输入?

在C++中,Cin如何使用1行输入?,c++,C++,像 如果a,b是变量 然后 像这样,一个cin可以接受多少变量。首先对措辞进行一些挑剔:只有一个变量。它是std::istream类型的对象。它有一个操作符>>,允许您一次读取一个内容。当操作员返回对std::cin的引用时,您可以根据需要链接任意多个调用 考虑到这两个人在做同样的事情: std::cin >> a; std::cin.operator>>(a); 链接是通过以下方式实现的: std::cin >> a >> b; std

像 如果a,b是变量 然后


像这样,一个cin可以接受多少变量。

首先对措辞进行一些挑剔:只有一个变量。它是std::istream类型的对象。它有一个操作符>>,允许您一次读取一个内容。当操作员返回对std::cin的引用时,您可以根据需要链接任意多个调用

考虑到这两个人在做同样的事情:

 std::cin >> a;
 std::cin.operator>>(a);
链接是通过以下方式实现的:

 std::cin >> a >> b;
 std::cin.operator>>(a).operator>>(b);
由于对运算符>>的每次调用都返回对流的引用,因此在一条语句中可以读取的变量数量没有限制:

 int a,b,c,d,e,f;
 std::cin >> a >> b >> c >> d >> e >> f;
<>虽然已经有了2个变量,但如果它们属于同一个数据结构

,你应该考虑一下。
 struct a_and_b {
     int a;
     int b;
 };
然后您可以为操作员提供过载>>

然后使用更具可读性的:

a_and_b x;
std::cin >> x;

实际上,它是无限的。但通常人们使用循环从cin输入更多的数据,这更容易控制。

没有限制,但很快就变得不可读。@molbdnilo你说的不可读是什么意思。你能再解释一下吗?他的意思是,如果>>的链条很长,人类将很难阅读和理解代码。请注意,代码编写一次,读取+20次,所以人类必须能够尽可能轻松地阅读代码。为了完整起见,我们可能应该提到std::istream_迭代器
std::istream& operator>>(std::istream& in,a_and_b& x) {
       in >> x.a;
       in >> x.b;
       return in;
};
a_and_b x;
std::cin >> x;