📄 subject_35885.htm
字号:
<p>
序号:35885 发表者:常山赵子龙 发表日期:2003-04-10 10:02:55
<br>主题:求助-------两个有待调试的C++程序!
<br>内容: 下面是我在钱能的《C++程序设计教程》上看到了二个例题,我用VC++6。0打入了源代源,但执行时出现了一些问题,我反复的对照了一下,确认我的源程序是没有问题的,但编译执行后结果总是不能让人满意。<BR> 因为我的VC++6。0是D版的,所以我不敢确认毛病出在了哪里,所以拿来请大家来帮个忙!<BR> 先谢谢了!!!<BR><BR> 这个是第三章45页的一个例题,目的是当输入字符‘b’响铃一次。如果输入回车,则输出“what a boring select n...”,如是输入的是除‘b’和回车以外的其它字符,则输出“bye!\n”!<BR> 但实际执行时,输‘b’时响铃是正常的,但输入回车和其它字符时,输出的都是“bye!\n”!也就是“if (ch=='\n') cout<<"what a boring select n...\n”并没有起作用。<BR> 我想知道为什么????<BR><BR># include <iostream.h><BR># include <conio.h><BR>void main()<BR>{<BR>cout<<"please input the b key to hear a bell.\n";<BR>char ch=getche();<BR><BR>if(ch=='b')<BR>cout<<'\a';<BR>else <BR>if (ch=='\n')<BR>cout<<"what a boring select n...\n";<BR>else<BR>cout<<"bye!\n";<BR>}<BR><BR><BR><BR> 这个是第五章90页的一个例题,与上例相似,它也是以输入回车为一个判断条件的,只不过是以输入回车作为循环的条件,所不同的是,他用是函数是“cin.get”,这个函数其实我并不熟悉,但我想其功能应该是和getche类似的吧!<BR> 但与上例问题一样,他的对回车符的判断依然没有起到作用,当输入回车时,程序没有象想象的那样循环回去,而是跳出循环并终止了程序。<BR> 这又是为什么呢???<BR><BR>#include <iostream.h><BR><BR>int isnumber(char); //函数声明<BR><BR>void main()<BR>{<BR>char c;<BR>while((c=cin.get())!='\n') //调用一个小函数<BR>{<BR>if(isnumber(c)) <BR>cout<<"you entered a digit\n";<BR>else <BR>cout<<"you entered a non-digit\n";<BR>}<BR>}<BR><BR>int isnumber(char ch) //函数定义<BR>{<BR>return(ch>='0'&&ch<='9')?1:0;<BR>}<BR><BR><BR> 我的源代码已经检查了好几篇,保证和书上是完全一致的,所以大家可以直接拷过去就可以调试了,再次谢谢大家了!<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:neilgan 回复日期:2003-04-10 10:19:52
<br>内容:I guess the author of your book tests his code on Unix. In Unix, '\n' is carriage return. But in Windows, '\n' is new line. you should use '\r', which is carriage return.<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:常山赵子龙 回复日期:2003-04-10 10:56:19
<br>内容:先谢谢这位外国朋友! :P<BR>你让我想起了白求恩!!!!<BR>可惜的我英语实在很烂,看了半天只看懂了‘\r’和'\n',呵呵!<BR><BR>按你的指点,我的问题真的得到解决了!<BR>我原来是学的C,用的是DOS下的TC2.0编译器,好象没出过这类的事情!<BR>没想到换成了WINDOWS出现了这么多问题,<BR>你说的"carriage return"应该是"硬回车"的意思吧!也就是说WINDOWS下"\r"和DOS下的"\n"是一样的?那在DOS下的"\r"(跳回全行首)在WINDOWS下又该怎么实现呢?<BR><BR>我是个菜鸟,请多多指教!<BR><BR>另上面还有一个问题让我漏掉了,现一并请教一下大家了!<BR>第一个程序应是输出一行"please input the b key to hear a bell."字符提示后再要求输入字符的.<BR>而该程序实际执行时,根本就没有输出那行信息,而是真接就出一个跳动的光标,而是在输入字符后才跳出那一行字?这岂不是"马后炮"了?有什么用?<BR>请问怎么能解决呢???<BR><BR>麻烦各位老师不要考我外语了好不好??我外语很烂的啦!!!<BR><BR><BR><BR><BR>2003-4-10 11:00:48
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -