搜索
查看: 964|回复: 3
打印 上一主题 下一主题

关于getch()用法问题

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-15 18:48:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include<stdio.h>
void main()
{
        int a=10,b=20,ch;
        printf("%d\n",a+b);
        getch();
        printf("%f",float(a)/b);
        getch();
        printf("The end.");

}


最佳答案

查看完整内容

getch() getch(): 所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上 函数原型:int getch(void) 返回值:读取的字符 例如: char ch;或int ch; getch();或ch=getch(); 用getch();会等待你按下任意键,再继续执行下面的语句; 用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。 易错点: 1.所在头文件是conio.h。而不是stdio.h。 2.在使用之前要调用 ...
沙发
发表于 2014-3-15 18:48:34 | 只看该作者
getch()
getch():
所在头文件:conio.h
函数用途:从控制台读取一个字符,但不显示在屏幕上
函数原型:int getch(void)
返回值:读取的字符
例如:
char ch;或int ch;
getch();或ch=getch();
用getch();会等待你按下任意键,再继续执行下面的语句;
用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
易错点:
1.所在头文件是conio.h。而不是stdio.h。
2.在使用之前要调用initscr(),结束时要调用endwin()。否则会出现不输入字符这个函数
也会返回的情况。
3.在不同平台,输入回车,getch()将返回不同数值,而getchar()统一返回10(即\n)
1)windows平台下ENTER键会产生两个转义字符 \r\n,因此getch返回13(\r)。
2)unix、 linux系统中ENTER键只产生 \n ,因此getch返回10(\n)。
3)MAC OS中ENTER键将产生 \r ,因此getch返回13(\r)。
getch();并非标准C中的函数,不存在C语言中。所以在使用的时候要注意程序的可移植性。国内C语言新手常常使用getch();来暂停程序且不知道此函数来源,建议使用getchar();(如果情况允许)代替此功能或更换一款编译器。
来源http://baike.baidu.com/link?url= ... mpGhsQSnLYMdFkFMAmd
  1. #include<stdio.h>
  2. int main(void)  
  3. {
  4.     double a=10,b=20;  //有乘除法尽量用double类型
  5.     printf("%.0f\n",a+b);//不要小数点
  6.     getch();    //getch()是非缓冲输入函数
  7.     printf("%f\n",a/b);
  8.     getch();
  9.     printf("The end.\n");
  10.    
  11.         return 0;
  12. }
  13.         
复制代码
板凳
发表于 2014-3-15 20:03:31 | 只看该作者
语法错误。正确的代码:
  1. #include<stdio.h>
  2. void main()
  3. {
  4.         int a=10,b=20,ch;
  5.         printf("%d\n",a+b);
  6.         getch();
  7.         printf("%f",(float)a/b);  //强制类型转换错了:P
  8.         getch();
  9.         printf("The end.");

  10. }
复制代码
地板
发表于 2014-3-15 20:51:37 | 只看该作者
地道一点的写法是
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int a=10,b=20;
  5.         printf("%d\n",a+b);
  6.         getchar();
  7.         printf("%f", 1.0*a/b);
  8.         getchar();
  9.         printf("The end.");

  10.         return 0;
  11. }
复制代码

这里没必要用getch
也不要随意用getch这种东西
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表