标题:(ch=getch())!='\0'为何是死循环??!!!
只看楼主
黑客
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-3-18
 问题点数:0 回复次数:11 
(ch=getch())!='\0'为何是死循环??!!!

本人编写了一个加密,解密程序. 但在密码处理时,遇到了这个问题: 为何这个子程序是死循环的?? #include<iostream> using std::cout; using std::endl; using std::cin; #include<conio.h> int main() { char ch,former[26]={'\0'}; int i=0; cout<<"input the string:"; while((ch=getch())!='\0') { former[i]=ch; cout<<'*'; i++; } cout<<"\n output:"<<former<<endl; return 0;

} 这个程序大家可以在编译器上直接运行了. 还有就是本人的编译器是VC++6.0的. 各位大哥 大姐们帮帮忙啊. 请吃饭怎么样?? 哈哈

搜索更多相关主题的帖子: getch former std cout using 
2005-04-22 11:56
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
得分:0 
并不是死循环啊
当你输入一个' \ 0 ' 时结束
 
不过怎么输入' \ 0 ' 呢??

动于心而静如水
2005-04-22 16:56
vincent_cl
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-4-3
得分:0 
getchar()得不到'\0'吧!

2005-04-22 20:09
流浪魂
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-4-21
得分:0 
换成其它的吧

何谓菜鸟?,呵呵,就是会吃菜的鸟。
2005-04-22 21:51
黑客
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-3-18
得分:0 
我想知道的是,换成怎么样的条件,才能在回车之后就确定了输入了呢???
这样的话总是死循环啊!!!

教父,已成为过去;谁来续写这段传说?-----我!
2005-04-23 13:46
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
得分:0 
'\r'或者'\n'
2005-04-23 14:15
黑客
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-3-18
得分:0 
只能用'\r','\n'不行
我刚上试过了.
还有就是谢谢上楼的.
什么时候我们下馆子去??!!!

教父,已成为过去;谁来续写这段传说?-----我!
2005-04-24 13:17
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
得分:0 
嗯~getch()不接收'\n'~所以只能用'\r'。
我在广州~你来请我哦
2005-04-24 13:37
haha1019
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-4-20
得分:0 
while((ch=getch())!='\n') { former[i]=ch; cout<<'*'; i++; } former[i]='\0'; 这样就把他输入了把啊
2005-04-28 16:50
yybbt
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-5-4
得分:0 
大家好~!我是新人~!!今天我加入了着个论坛的大家庭也加入了C++这个大世界~!!呵呵~!
希望大家指教~!!还有就是请路过的高人解释解释上面那个程序~!!本人先谢了~!呵呵~!!看懂了一点~!!还不是很明白~!!呵呵~!
2005-05-04 21:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-16362-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.426176 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved