c语言中getch,getche,getchar的区别

yizhihongxing

当你在使用 C 语言编写控制台程序时,可能会使用到三个常用的函数:getchgetchegetchar。它们都可以用于从控制台读取用户输入的字符,但是它们的行为有些不同。

1. getch

getch函数通常被用于读取单个字符,但是它是一个非标准的函数,不是ANSI C标准的一部分。因此,它的行为可能因操作系统/编译器而异。简单来说,它可以从键盘上读取一个字符,但是输入的字符不显示在屏幕上,你可以用这个函数来获取用户的输入,并根据输入进行相应的处理。

下面是一个简单的示例代码,展示了如何使用getch函数:

#include <stdio.h>
#include <conio.h> //包含getch函数的头文件

int main() {
    char c;
    printf("Enter a character:");
    c = getch();  //读取输入的字符
    printf("\nYou entered: %c\n", c); //输出输入的字符
    return 0;
}

这个代码运行时会等待用户输入一个字符,并将用户输入的字符保存在变量 c 中,然后输出用户输入的字符。

需要注意的是,getch函数在Windows平台上可用,在Unix/Linux平台上可能不存在或者表现不一致,因此在跨平台的程序中尽可能避免使用getch函数。

2. getche

getche函数类似于getch,但是它会将读取的字符显示在屏幕上,这也是它名称中 "e" 的来源(read and echo)。这个函数通常用于读取单个字符,展示给用户并立即执对这一字符进行处理。

这里有一个getche的示例代码,展示了如何使用它:

#include <stdio.h>
#include <conio.h> //包含getche函数的头文件

int main() {
    char c;
    printf("Enter a character:");
    c = getche();  //读取输入的字符并同步输出到屏幕上
    printf("\nYou entered: %c\n", c); //输出输入的字符
    return 0;
}

这个代码运行时会等待用户输入一个字符,并将用户输入的字符保存在变量 c 中,然后将输入的字符直接输出在控制台上,并输出用户输入的字符。

需要注意的是,getche函数在Windows平台上可用,在Unix/Linux平台上可能不存在或者表现不一致,因此在跨平台的程序中尽可能避免使用getche函数。

3. getchar

getchar函数用于从标准输入流(通常是键盘)读取单个字符,并将其保存在字符变量中,但它不会在屏幕上显示字符。这个函数通常用于读取多个字符,因为它可以重复调用以读取多个字符,直到读取到换行符或文件结束符。

下面是一个简单的示例代码,展示了如何使用getchar函数:

#include <stdio.h>

int main() {
    char c;
    printf("Enter some text:");
    while ((c = getchar()) != EOF && c != '\n') {//循环读取直到遇到换行符或文件结束符
        printf("%c", c);
    }
    return 0;
}

这个代码运行时会一直读取用户从键盘上输入的字符,直到遇到换行符才结束循环,并将输入的字符逐个输出到控制台上。

需要注意的是,getchar函数是标准的ANSI C函数,在Unix/Linux和Windows平台上均可用。

总结:

  • getch 是一个非标准的函数,在Windows编程中比较常见,一般用于读取单个字符,它不会将读取的字符显示在屏幕上。
  • getche 函数与getch函数类似,它也不是标准的函数,也是在Windows编程中比较常见,它在屏幕上显示读取的字符。
  • getchar是标准的函数,一般用于读取多个字符,例如从stdin中读取数据。通过循环来反复调用这个函数,从而不断地读取字符,直到遇到换行符或文件结束符为止,因为它会一直读取直到遇到这些字符。

希望这篇攻略对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c语言中getch,getche,getchar的区别 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • C标准库的实现详解

    C标准库的实现详解 简介 assert.h 是 C 标准库中的一个头文件,该头文件包含一个宏 assert() 和一些用于调试的宏定义,它们可以在程序运行中检查和诊断条件是否为真,即程序是否按照预期运行。通常情况下,assert() 用于调试程序,以确保程序的正确性。 assert()宏的使用 assert() 宏用于在程序运行期间检测给定的条件是否为真。如…

    C 2023年5月23日
    00
  • PPT怎么随意绘制带c图形?

    下面我将为您详细讲解如何在PPT中随意绘制带c图形。 1. 使用PPT自带的绘图工具 PPT自带了许多绘图工具,对于一些简单的图形,使用这些工具已经足够了。 首先,打开您的PPT文档,然后选择“插入”菜单中的“形状”,在下拉菜单中选择您需要的形状,例如圆形、矩形等。 接着,在您的PPT页面中按下鼠标左键并拖动,即可绘制出您需要的图形,在图形中添加文字或其他元…

    C 2023年5月23日
    00
  • C语言函数指针和字符串

    让我们来详细讲解一下“C语言函数指针和字符串”的使用攻略。 函数指针 定义函数指针 函数指针是指向函数的指针。在C语言中,我们可以通过以下方式定义函数指针: 返回值类型 (*指针变量名)(参数列表) 例如,下面是一个函数指针的定义示例: int (*func_ptr)(int, int); 上面的代码定义了一个名为func_ptr的函数指针,它可以指向一个返…

    C 2023年5月9日
    00
  • C++面向对象中构造函数使用详解

    C++面向对象中构造函数使用详解 在C++面向对象编程中,构造函数是一个非常重要的概念,它负责对象的初始化和内存分配等工作。本文将详细讲解C++面向对象中构造函数的使用,包括构造函数的声明、定义以及调用,以及构造函数的默认参数和重载等概念。 构造函数的声明与定义 构造函数的声明和普通函数的声明类似,都需要指定函数名、参数列表和返回类型。但是,构造函数没有返回…

    C 2023年5月22日
    00
  • 用C语言实现简单的计算器功能

    创建计算器的布局 首先,我们需要创建一个简单的图形用户界面(GUI),以便用户可以愉快地使用我们的计算器。这里我们将使用C语言中的一个GUI库——GTK。 示例代码: #include <gtk/gtk.h> int main(int argc, char *argv[]) { //初始化 gtk_init(&argc, &arg…

    C 2023年5月23日
    00
  • Python解析JSON对象的全过程记录

    Python解析JSON对象的全过程记录 什么是JSON格式 JSON(JavaScript Object Notation)是JavaScript对象表示法。它是一种轻量级的数据交换格式。JSON是一种数据格式,类似于XML格式,但是更加轻量级,易于阅读和编写。JSON格式数据在存储和传输数据时具有很大的优势。JSON格式是由JavaScript语言发展而…

    C 2023年5月23日
    00
  • VS2015中怎么创建C语言文件?

    首先,打开Visual Studio 2015,选择新建项目(New Project)。 然后,在弹出的新项目窗口中,选择Visual C++,在Visual C++中选择Console Application(控制台应用程序)。 在控制台应用程序设置中,我们需要选择C++语言核心选项,因为C语言是C++的超集。 在接下来的窗口中,我们需要设置项目的名称和存…

    C 2023年5月23日
    00
  • 详解C++11中绑定器bind的原理与使用

    详解C++11中绑定器bind的原理与使用 什么是bind bind是C++11中的一个函数绑定器,它可以将一个函数和一些参数绑定起来,形成一个可调用的新函数对象。绑定函数的参数可以在绑定时全部传递,也可以在调用时再进行部分传递。这种参数的绑定机制,可以方便地用来实现回调函数、函数适配器等功能。 bind函数的原型 template<class F, …

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部