while(std::cin>>value)//读取数据直到遇到文件尾,计算所有读入的值的和 sum+=value;//等价于sum=sum+value std::cout<<"Sum is : "<<sum<<std::endl; return0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 运行后 发现不管怎么折腾,都不能让程序继续向下运行。 从键盘输入文件结束符 当从键盘...
若流有效,则检测成功,返回true。当遇到文件结束符或者无效的输入(比如用一个字符来作为一个整型数的输入时),istream的对象状态会变为无效。 总而言之: (1) 输入数据时需要敲回车键才能将数据送到缓存器,cin才能读取缓存区的数据。 (2) 当cin遇到文件结束符(windows中为:ctrl +Z , Unix 中为:ctrl +D),或...
while (std::cin >> value) 的结束条件 刚才无意从c++primer中发现的,就是Windows系统中一Ctrl+Z结束,而UNIX和macos则以Ctrl+D结束,不需要再输入一个其他字符结束。 /*测试插入图片*/
还是在 C++ 吧里的问题, 有人问怎样终止形如 while(std::cin >>word){/* do something */} 的情况, 除了用 Ctrl +C. 我原以为下面定是一群人回答 Ctrl + Z, 结果还是我一厢情愿, 不少人还说那是个死循环, 非要加个条件 break 出去才能得救, 像这样的就应该拖下去用 C++ primer 砸死...当然, ...
你需要添加break语句跳出循环,否则就是无限循环了。比如改为 if(b<=0)++a;else if(b==1)break;这样输入1就可以跳出循环了
while(cin)循环在C++中常用于从标准输入(通常是键盘)连续读取数据,直到遇到输入结束标志。这里的cin是C++标准库中的输入流对象,用于从标准输入读取数据。while(cin)的循环条件实际上是cin对象在尝试读取输入后的状态。如果读取成功且没有遇到错误(如文件结束符EOF),则cin的状态为“真”(true),循环继续;如果遇到错误...
当我们使用 istream 对象作为条件,结果是测试流的状态。如果流是有效的(也就是说,如果读入下一个输入是可能的)那么测试成功。遇到文件结束符或遇到无效输入时,如读取了一个不是整数的值,则 istream 对象是无效的。处于无效状态的 istream 对象将导致条件失败。
std::cin.setstate(std::ios_base::failbit); } } 这个时候,循环结束。所以,while中std::cin >> input的返回是跟流的状态相关的。 综上,之所以犯错,主要是因为第二步的转换操作符“作祟”,C++的隐式转换在某种程度上会带来理解的成本,使用时要加倍小心。
在cppreference上可以看到,cin的类型是std::istream(等同于std::basic_istream<char>),而且它是一个global object; 顺着看std::istream,我们需要知道>>这个操作符返回了什么,查找到返回的类型是std::basic_istream&,值就是cin它自己。 也就是说while condition里现在有一个std::basic_istream类型的值,它要能...
51CTO博客已为您找到关于while(cin>>str的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及while(cin>>str问答内容。更多while(cin>>str相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。