菜鸟请教一个小问题?

ftmdshzy 2005-09-22 01:14:42
......
while(cin >> elem){};
.....

请问要输入什么才能终止这个循环?
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftmdshzy 2005-09-23
  • 打赏
  • 举报
回复
大家都说的不错
谢谢大家的帮助
祝大家工作愉快,学习进步^_^
Devillove 2005-09-22
  • 打赏
  • 举报
回复
楼上说的对!!!

楼主可以结贴了!!!!
eeQee 2005-09-22
  • 打赏
  • 举报
回复
char型的时候不加判断条件也可以终止的,只要按Ctrl+z键后回车就可以了,按Ctrl+Z以后会显示一个^Z的

这个循环里面的elem如果是char类型的话没次输一段字符是按回车后才一起执行循环的,中间如过含有Ctrl+Z(^Z)这个字符的话这一轮就执行到遇到^Z重新等待输入,只要一次输入以^Z开头时才会退出
oyljerry 2005-09-22
  • 打赏
  • 举报
回复
自己加判断条件吧
youngdreamer2008 2005-09-22
  • 打赏
  • 举报
回复
elem要是int,则越界后就会退出,unsigned 0~4G; signed -2G~2G (32bit)
若为char* ,没辙,只能强退!
snowbirdfly 2005-09-22
  • 打赏
  • 举报
回复
#include <iostream>
#include <string.h>

using namespace std;

int main()
{
char elem;

while(cin >> elem)
{
printf("dfsaf");
if(elem == '@')//加个终止条件
break;
}
return 0;
}
snowbirdfly 2005-09-22
  • 打赏
  • 举报
回复
是啊~~
要看你输入什么字符了~~~
要是int,long类型就会终止~
要是字符类型~也就要强制终止了~~~
最好使用函数cin.get()函数~
还可以加个终止条件~~
xiaocai0001 2005-09-22
  • 打赏
  • 举报
回复
看看cin的定义

extern istream cin;
这说明cin是一个istream的对象

再看看istream类对操作符>>的重载
istream& operator >>( char* psz );
istream& operator >>( unsigned char* pusz );
istream& operator >>( signed char* pssz );
istream& operator >>( char& rch );
istream& operator >>( unsigned char& ruch );
istream& operator >>( signed char& rsch );
istream& operator >>( short& s );
istream& operator >>( unsigned short& us );
istream& operator >>( int& n );
istream& operator >>( unsigned int& un );
istream& operator >>( long& l );
istream& operator >>( unsigned long& ul );
istream& operator >>( float& f );
istream& operator >>( double& d );
istream& operator >>( long double& ld ); (16-bit only)
istream& operator >>( streambuf* psb );
istream& operator >>( istream& (*fcn)(istream&) );
istream& operator >>( ios& (*fcn)(ios&) );

即这些函数的返回值都是一个istream对象,
那么while(cin >> elem){};
怎么结束呢?
只有返回的istream对象被逻辑判定为假. 但这一般是很少的

所以建议将cin>>elem改成其他形式 如cin.get()或cin.getline()等,返回值不是istream &类型
会更好理解些
junguo 2005-09-22
  • 打赏
  • 举报
回复
elem如果是int的话,输入不是数字的数或者输入的数字超过范围就会退出。

如果是char数组的话,输入的字符串超过数组长度就会退出。
fiftymetre 2005-09-22
  • 打赏
  • 举报
回复
elem是什么类型的?
如果是int,long这些,输入字符就会结束
如果是char,string,就要强制结束了

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧