
请C++高手帮忙分析程序运行出现这样结果的原因: 谢谢!
比如说有一段程序:voidmain(){cout<<"Theending!";return;}如果是这样运行程序,则出现的程序运行结果为Theending!Pressan...
比如说有一段程序:
void main()
{cout<<"The ending!";
return ;
}
如果是这样运行程序,则出现的程序运行结果为The ending!Press any key to continue
这两句话之间是没有换行的
但如果把程序改为
void main()
{char c;
cout<<"The ending!";
cin.get()
return ;
}
运行时,最后如果输入任意一个字符,假如说是k,按回车会才会出现
The ending!
Press any key to continue
这两句之间是换行的。请问cin.get()这一句不是从键盘上接收了字符k吗,为什么还可以接收换行符'/n’呢?
谢谢! 展开
void main()
{cout<<"The ending!";
return ;
}
如果是这样运行程序,则出现的程序运行结果为The ending!Press any key to continue
这两句话之间是没有换行的
但如果把程序改为
void main()
{char c;
cout<<"The ending!";
cin.get()
return ;
}
运行时,最后如果输入任意一个字符,假如说是k,按回车会才会出现
The ending!
Press any key to continue
这两句之间是换行的。请问cin.get()这一句不是从键盘上接收了字符k吗,为什么还可以接收换行符'/n’呢?
谢谢! 展开
2个回答
2011-06-19
展开全部
老大,以后别加“高手”,你这种问题如果有“高手”给你答,他自己都觉得掉价儿。
我不是高手,所以我告诉你:
cin.get()没接收没接收回车“换行符”,可是cin.get()是通过你敲回车“换行符”才知道你已经输入完毕,它要读取你的输入了。
而你看到的你的输入内容 “k回车” 可不是你写的这个程序的输出,而是操作系统为了让你更直观而把你的所有输入同步显示出来的。
比如:The ending! 这是你程序的唯一输出
而你看到的:k回车 这是操作系统对你的输入同步输出
==============
我记得C语言里有个getch() 函数,你看这个函数读取就不是按照“遇到回车”才开始读取,而是你输入的同时它就读取(同步读取)。
=============
额外送你个底层小知识:
你在程序中的所有输入都会暂时存储在一个系统提供的队列里的,输入函数按照他们自己的读取规则去从这个队列中读取。
举例:
cin.get() 规则:当输入队列中出现“回车(\n)”则开始读取队列中第一个字符。
getch() 规则:只要输入队列中出现“字符”则开始读取队列中的第一个字符。
=======
消化消化吧,下次别加“高手”二字,否则很少有人回复你的。
我不是高手,所以我告诉你:
cin.get()没接收没接收回车“换行符”,可是cin.get()是通过你敲回车“换行符”才知道你已经输入完毕,它要读取你的输入了。
而你看到的你的输入内容 “k回车” 可不是你写的这个程序的输出,而是操作系统为了让你更直观而把你的所有输入同步显示出来的。
比如:The ending! 这是你程序的唯一输出
而你看到的:k回车 这是操作系统对你的输入同步输出
==============
我记得C语言里有个getch() 函数,你看这个函数读取就不是按照“遇到回车”才开始读取,而是你输入的同时它就读取(同步读取)。
=============
额外送你个底层小知识:
你在程序中的所有输入都会暂时存储在一个系统提供的队列里的,输入函数按照他们自己的读取规则去从这个队列中读取。
举例:
cin.get() 规则:当输入队列中出现“回车(\n)”则开始读取队列中第一个字符。
getch() 规则:只要输入队列中出现“字符”则开始读取队列中的第一个字符。
=======
消化消化吧,下次别加“高手”二字,否则很少有人回复你的。

2023-06-12 广告
单片机汇编程序是用汇编语言编写的程序,用于控制单片机的操作。汇编语言是一种比较接近计算机硬件语言的低级语言,相对于高级语言来说更容易理解和实现。下面是单片机汇编程序的基本步骤:1. 将代码和数据汇编到规定的段中。2. 在存储器中用未初始化的...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询