首页 > 其他分享 >【C 语言基础】get四子——getc()、getchar()、getch() 和 getche() 的区别

【C 语言基础】get四子——getc()、getchar()、getch() 和 getche() 的区别

时间:2023-12-31 17:13:47浏览次数:30  
标签:getch 四子 get int getc getche include getchar

所有这些函数都从输入中读取一个字符并返回一个整数值。返回整数以容纳用于指示失败的特殊值。EOF值通常用于此目的。

1. getc()

    它从给定的输入流中读取单个字符,并在成功时返回相应的整数值(通常是读取字符的ASCII值)。失败时返回EOF。
    语法:

int getc(FILE *stream);

    示例:

// Example for getc() in C
#include <stdio.h>
int main()
{
    printf("%c", getc(stdin));
    return(0);
}

    输出:

Input: g (press enter key)
Output: g 

2. getchar()

    getc() 和 getchar() 之间的区别是 getc() 可以从任何输入流读取,但是 getchar() 只能从标准输入流读取。因此 getchar() 等价于 getc(stdin)。
    语法:

int getchar(void);

    示例:

// Example for getchar() in C
#include <stdio.h>
int main()
{
printf("%c", getchar());
return 0;
}

    输出:

Input: g(press enter key)
Output: g 

 

3. getch()

    getch() 是一个非标准函数,存在于 conio.h 头文件中,该文件主要由 MS-DOS 编译器(如 Turbo C)使用。它不是 C 标准库或 ISO C 的一部分,也不是由 POSIX 定义的。
    与上述函数一样,它也从键盘读取单个字符。 但它不使用任何缓冲区,因此输入的字符会立即返回,无需等待回车键。
    语法:

int getch();

    示例:

// Example for getch() in C
#include <stdio.h>
#include <conio.h>
int main()
{
printf("%c", getch());
return 0;
}

    输出:

Input:  g (Without enter key)
Output: Program terminates immediately.
        But when you use DOS shell in Turbo C, 
        it shows a single g, i.e., 'g'

4. getche()

    与 getch() 一样,这也是conio.h中的一个非标准函数。它从键盘读取单个字符,并立即显示在输出屏幕上,而无需等待回车键。
    语法:

int getche(void);

    示例:

#include <stdio.h>
#include <conio.h>
// Example for getche() in C
int main()
{
printf("%c", getche());
return 0;
}

    输出:

Input: g(without enter key as it is not buffered)
Output: Program terminates immediately.
        But when you use DOS shell in Turbo C, 
        double g, i.e., 'gg'

 

转载参考

1. https://www.cnblogs.com/octobershiner/archive/2011/12/08/2281240.html

2 https://www.cnblogs.com/octobershiner/archive/2011/12/08/2281240.html

标签:getch,四子,get,int,getc,getche,include,getchar
From: https://www.cnblogs.com/FBsharl/p/17937733

相关文章

  • 关于项目中遇到的一个loadsh中_.get()方法的一个小问题
    背景:同事最近找我看一个bug,起因是我们公司产品中心写的公共的列表组件在新增数据保存的时候报错,错误如下Invalidattempttospreadnon-iterableinstance(传播不可迭代的无效尝试)查了下网上说很大可能是因为扩展运算符出错导致的,我也比较倾向于这种解释,但是产品中心这个组件已......
  • vue中get和post请求
    vue中和后台交互,首先要引用vue-resource.jsvue-resource.js是专门和后台进行交互<!--==============引入vue-resource插件=================--><scriptsrc="../js/vueJs/vue-resource.js"></script>vue中get请求functiongetRequest(url,params){returnnewPromis......
  • k8s限速队列不通过Get方法判断队列是否关闭
    go.modmoduleuse-k8s-queuego1.19requirek8s.io/client-gov0.28.2require( github.com/go-logr/logrv1.2.4//indirect golang.org/x/timev0.3.0//indirect k8s.io/apimachineryv0.28.2//indirect k8s.io/klog/v2v2.100.1//indirect k8s.io/utils......
  • 通达OA 任意文件上传+文件包含 getshell
    漏洞影响版本通达OAV11版<=11.320200103通达OA2017版<=10.1920190522通达OA2016版<=9.1320170710通达OA2015版<=8.1520160722通达OA2013增强版<=7.2520141211通达OA2013版<=6.2020141017漏洞分析根据网上的文章可以知道任意文件上传的漏洞点在is......
  • .NET Core发送HTTP Post和Get
    ///<summary>///公共方法——发送httppost请求2020年6月2日11:20:42Dennyhui///</summary>///<paramname="formData">参数</param>///<paramname="requestUri">请求地址</param>......
  • Getx controller初始化携带参数
    不难的一个问题,写的时候一时间没反应过来。。。//声明controllerSomeControllerextendsGetxController{ finalStringid; finalString?name;SomeController({requiredthis.id,this.name});staticSomeControllergetto=>Get.find();initConfig(){ pr......
  • cocoaPod 执行 pod install 时出现警告:The `XX [Release]` target overrides the `CLA
    最近执行Podinstall安装命令时,控制台输出警告信息:[!]The`XXX[Debug]`targetoverridesthe`CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES`buildsettingdefinedin`Pods/TargetSupportFiles/Pods-XXX/Pods-XXX.debug.xcconfig'.Thiscanleadtop......
  • 压测工具(vegeta)-测试haproxy
    一、压测工具vegeta1、介绍Vegeta是一个用Go语言编写的多功能的HTTP负载测试工具,它提供了命令行工具和一个开发库。 官方地址:https://github.com/tsenart/vegeta2、安装Vegeta wgethttps://github.com/tsenart/vegeta/releases/download/v7.0.3/vegeta-7.0.3-linux-......
  • get 分页传对象
    前台exportfunctionfetchList(query?:Object){returnrequest({url:'/bs/bsCompanyFinancial/page',method:'get',params:query})}conststate:BasicTableProps=reactive<BasicTableProps>({queryForm:{},......
  • 短小精悍(4) - Rust操作系统随机数getrandom库介绍
    今天带来的是另一个“短小精悍”的库:getrandom。它的作用是从操作系统提供的随机数源获得一段随机数。用法getrandom的用法很简单,唯一需要了解的就是它内部的同名函数:pubfngetrandom(dest:&mut[u8])->Result<(),Error>它将会向dest中填充来自操作系统的随机数。示例:......