问一个关于C++程序的问题(附代码)

#include <iostream>
using namespace std;

int main()
{
int i;
char c;
cout<<"a";
for(i=0;i<=40;i++)
{
cin>>c;
if(c=='^Z')
break;
}
cout<<"b"<<endl;
return 0;
}
这段程序是一本书上的,为什么要输入两个ctrl+Z才能退出循环呢?书上没写为什么,只写了要输入2次Ctrl+Z,我试验了一下,确实是要输入两次Ctrl+Z,求解释。。。

第1个回答  2011-06-29
我用的是devc++没有遇到你说的两次的情况,因为输入以后按回车就退出了!
第2个回答  2011-06-29

未必是要输入两个Ctrl+Z才能退出循环。

程序的功能是,一旦变量c==“^Z”,则退出循环,结束。

所以如果你第一个输入 Ctrl+Z,然后回车,也会结束程序。

追问

可是我在我的电脑上试的,确实要输入2次啊,第一次输入回车之后没反应的,必须再输入第二次啊。。。我用的是VC++。。。。。。。这个是怎么回事呢?

第3个回答  2011-06-29
cin函数在输入时貌似有一个叫做缓存的机制,即读入到数据在缓存中,然后再处理。你去查查C++参考手册。里面有说到。追问

那具体到这个程序上,它是怎么处理的呢?而且我试着换成别的字符,如cin>>c;f(c=='v')break
这样就可以直接跳出啊

询问一道VC++程序题,求详细解释
若C++版本不支持如此遍历,可使用如下方式*\/ for (int i = 0; i < s1.length(); i++)s += toUpper(s1[i]);for (int i = 0; i < s2.length(); i++)s += toUpper(s2[i]);cout << s << endl; \/\/ 1)将两字符合并并转为大写显示 cout << s.substr(2, 5) << endl...

对于这个C++程序,我又一些疑问,希望能帮我解读。
先回答你的问题吧!1.现在规范代码,都是int main()不再是以前的void main();不管怎样main()也是一个函数,既然不是void类型就要有返回值;如果执行到return语句时,该函数结束。所以你主函数中return0;后面一句输出是无效的。至于它是返回给谁,我不清楚。2.你的说法是可以的 3.在C或者C++ 中...

一道C++程序题目求助
fprintf(fp,"%d",rec[m+n-2][n-1][n-1]);fclose(fp);return(0);}

一个小小的关于C\/C++的问题,pow(0,0)的值是多少?
答案为 1;现在0是自然数,自然数的0次方为1;附上python代码:>>> b=pow(0,0);>>> print(b);1 附注:现在,国外的数学界,大部分都是规定0是自然数,为了国际交流的方便,《国家标准》中规定,自然数集包括0。因此,在我们新出版的教材中,按照《国家标准》进行了这样的处理,原来的自然...

C++ 编程,编写一个程序,通过根据输入键重新排列输入字符串中的字符来...
首先,每n个字符一行,构建出如图的矩阵。按照密钥顺序进行重新排序。最后合成一个字符串进行输出。我这里将这道题看成每n个字符一组,就不构建二维数组了,按照key指定顺序进行输出。其中实际上顺序就是key的值从小到大排序后的索引顺序。我这里就是用上述流程了,具体说明已经附在图例,请看注释。我没...

C++循环问题
问题1:可能之前的回答不到位,让您造成了这个小细节上的误会。 b[j]='\\0'不属于for循环体的一部分。这个时候for循环已经结束,所以这时候的j已经经历了12次自加,从0已经变成了12,(关于这个您可以在后面我附上的程序里看明白),所以这句话是说b[12]='\\0'.这是说我们已经得到了去掉字符串...

C++,大佬们看下这里报错是为什么?可是这代码能AC啊?!
include <bits\/stdc++.h> 不过这种方法有一个小问题,并不是所有的环境都支持,尤其是在正式比赛的场合,所以一般情况下大家都是一些网络赛才会用它,我个人由于懒得区分环境,所以还是习惯自己一个一个 include。请点击输入图片描述 define部分 define 是 C++ 当中非常强大的功能,它可以定义规则对代码...

c\/ c++中求余的问题!
首先明确:求余(%)运算又叫模(mod)运算,C\/C++当中求余(%)运算的操作数只能是整型(int)当被除数小于除数时,求余结果就等于被除数。例如:2%5=2,3%10=3.理解的话有两个角度:1.从数学角度来理解很简单,就按照数学上求余数的方法来求余:例如:2÷5=0……2(商0余2)2.从编程...

帮我做个C++题目,有代码,修改一下就行,让它运行成功 没法上传附件,给你...
下面给出students类的补充,你在把保存文件和排序注释掉,加个主函数,编译能通过,其他的自己找找资料改吧:using namespace std;class students{ public:string number; \/\/ 学号int n;\/\/ 总数int com_results; \/\/总分public:string getnumber(){return number;}int getcom_results(){return com...

最高财富值!求两道C++题目的源代码和每个代码的功能详解
VC++课程设计作业一 ——TICACTOE游戏的设计 一、程序功能简介 该程序是TICACTOE游戏,棋盘为3×3,3个棋子连起来即为赢。输入参数时,如输入的数字超出边界或已有棋子的地方再输入,则提示出错,要求重新输入。二、课程设计要求 (1) 将程序改写成类。(2) 将棋盘扩充成4×4。(3) 统计输赢...

相似回答
大家正在搜