啊哈磊_编程从这里起步

标题: 关于getch()用法问题 [打印本页]

作者: 飞翔の蓝天    时间: 2014-3-15 18:48
标题: 关于getch()用法问题
#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.");

}



作者: 李掌柜    时间: 2014-3-15 18:48
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.         
复制代码

作者: cad20020601    时间: 2014-3-15 20:03
语法错误。正确的代码:
  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. }
复制代码

作者: rosynirvana    时间: 2014-3-15 20:51
地道一点的写法是
  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这种东西




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2