C++Primer难点解读

C++Primer难点解读

关于while(cin>>a);这个语句一开始看的时候是有一些疑问的。web

一是对cin这个词不太了解,虽然书上解释了cin是输入流类型istream类型的对象,可是仍是没法理解为何从键盘输入的数据,为何会存储在cin这个对象中去。svg

二是对>>这个运算符不太了解,书上的解释是>>是输入运算符,可是在书后面会介绍这个符号实际上是右移运算符,它的做用是将化为二进制的数据右移。
而输入运算符>>是右移运算符的重载,也就是对这个>>符号的从新解释,让它拥有了从流读取数据的功能。
输入运算符(>>)的左侧对象必须是一个istream类型的对象,其右侧对象是存储数据的对象。
也就是将输入运算符左侧对象的数据存入右侧对象中。xml

综上所述,cin>>a的意思是
咱们从键盘输入某个数据,这个数据会存入cin中。具体怎么存入的,我也不知道,多是istream类规定了从外部设备输入的数据,都会存储在istream类的对象中。由于本人是个初学者,对C++的认识不够,只能按逻辑猜想。对象

而后是实现输入运算符的功能,将cin中的数据存入对象a中。ci

最后,回到咱们标题的问题。
while(cin>>a)的解答。
while是一个循环,书上解释了当输入无效或者同时输入ctrl+z时会中止循环。
那么while(cin>>a)的意思就是除非终止循环,不然会一直将从键盘输入的值存入cin,再将cin的值存入a中。
至关于不断给a赋值,这个值就是咱们从键盘输入的值。it