鱼C论坛

 找回密码
 立即注册
查看: 9643|回复: 9

C语言 按ESC键,程序就退出的问题?

[复制链接]
发表于 2013-8-12 20:33:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>

  2. void main()
  3. {
  4.         char a,b;

  5.         do
  6.         {

  7.                 a = getchar();
  8.                 if(a>='A'&& a<='Z')
  9.                 {
  10.                         b=a+32;
  11.                 }
  12.                 else
  13.                 {
  14.                         b=a;
  15.                 }
  16.                 printf("%c\n",b);
  17.         } while ( getchar() != 27 );


  18. }
复制代码
想实现在循环的过程, 如果按ESC键就退出. 但代码好像没问题, 怎么按ESC键就退出不了哦? 求解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-12 21:08:00 | 显示全部楼层
ESC貌似是无法输入 好像是清屏诶 你可以换其他键那样你的程序就没什么问题了 比如你可以设置5键退出之类的
其实你干嘛这样呢让他一直下去不好了不想要用了就点关闭不就行了
  1. #include<stdio.h>

  2. void main()
  3. {
  4.         char a,b;
  5.        
  6. s:a = getchar();
  7.   if(a>='A'&& a<='Z')
  8.   {
  9.           b=a+32;
  10.   }
  11.   else
  12.   {
  13.           b=a;
  14.   }
  15.   printf("%c\n",b);
  16.   
  17.   goto s;
  18. }
复制代码
希望对你有帮助
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-12 21:31:03 | 显示全部楼层

也不行的, 我调试了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-12 21:32:19 | 显示全部楼层
pro-serv 发表于 2013-8-12 21:31
也不行的, 我调试了

那就直接用我给你的代码吧 我去试试看 用5作为退出 好吧
我觉得我的代码应该是比较实用的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-12 21:34:13 | 显示全部楼层
pro-serv 发表于 2013-8-12 21:31
也不行的, 我调试了

可以的啊 就是要改一个地方(*^__^*) 嘻嘻……
  1. #include<stdio.h>

  2. void main()
  3. {
  4.         char a,b;

  5.         do
  6.         {

  7.                 a = getchar();
  8.                 if(a>='A'&& a<='Z')
  9.                 {
  10.                         b=a+32;
  11.                 }
  12.                 else
  13.                 {
  14.                         b=a;
  15.                 }
  16.                 printf("%c\n",b);
  17.         } while ( b != '5' );//不能用getchar() 直接用b


  18. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-12 21:34:35 | 显示全部楼层
pro-serv 发表于 2013-8-12 21:31
也不行的, 我调试了

申请最佳 啊好不好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-12 21:45:39 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-8-12 21:34
申请最佳 啊好不好

为什么输入一个字母,按回车键之后,会连续几行的换行,然后再是等待输入?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-12 21:54:52 | 显示全部楼层
pro-serv 发表于 2013-8-12 21:45
为什么输入一个字母,按回车键之后,会连续几行的换行,然后再是等待输入?

你输入的时候还输入了\n但getchar()只能取走你输入的字母啊
只要加一句getchar()就可以了
  1. #include<stdio.h>

  2. void main()
  3. {
  4.         char a,b;

  5.         do
  6.         {

  7.                 a = getchar();
  8.                 getchar();//把\n去掉
  9.                        
  10.                 if(a>='A'&& a<='Z')
  11.                 {
  12.                         b=a+32;
  13.                 }
  14.                 else
  15.                 {
  16.                         b=a;
  17.                 }
  18.                 printf("%c\n",b);
  19.         } while ( b != '5' );


  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-12 22:07:57 | 显示全部楼层
申请给我最佳答案啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-12 22:12:23 | 显示全部楼层
不用吧,这种问题很基础,作为实习版主我想你不应该这样教人家也不用这样要荣誉吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-17 06:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表