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

当你在使用 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语言 文件I/O

    下面是C语言文件I/O的完整使用攻略。 什么是文件I/O 文件I/O是指文件的输入/输出操作。C语言中,文件的读写操作主要通过<stdio.h>头文件中提供的函数实现。 文件的读写操作 打开文件 在进行文件读写前,首先需要打开文件: FILE *fopen(const char *filename, const char *mode); 其中,f…

    C 2023年5月9日
    00
  • C++中的friend友元函数详细解析

    让我来详细讲解一下“C++中的friend友元函数详细解析”的完整攻略。 什么是友元函数 在C++中,一个类的成员函数和成员变量通常只能被该类的对象使用。但是有些时候,我们需要在类外部的函数中使用该类的私有成员,这个时候可以使用友元函数。 友元函数是在类内部声明,在类外部定义的非成员函数,友元函数拥有访问该类的私有成员变量和私有成员函数的权限。友元函数可以在…

    C 2023年5月22日
    00
  • 使用C语言编写基于TCP协议的Socket通讯程序实例分享

    本篇文章的主要目标是向大家分享如何使用C语言编写基于TCP协议的Socket通讯程序。这个过程分为以下几个步骤: 步骤一:创建Socket 首先,我们需要创建一个Socket。Socket是一个用于数据传输的端点,可以理解为建立数据传输通道的道具。在C语言中,我们可以使用socket()函数创建Socket。具体代码如下: int sockfd = sock…

    C 2023年5月24日
    00
  • 深入解析C++11 lambda表达式/包装器/线程库

    深入解析C++11 lambda表达式/包装器/线程库 C++11 lambda表达式 Lambda表达式是C++11中最重要的新特性之一。Lambda表达式提供了一种简单且易于使用的方式,用于定义和传递匿名的、可调用的代码块。 基本语法 Lambda表达式的基本语法如下: [capture list] (params) -> return_type …

    C 2023年5月22日
    00
  • c语言编程软件有哪些 Win7下用哪种C语言编译器

    c语言编程软件有很多种,常用的有Visual Studio、Code::Blocks、Dev-C++、Eclipse、Sublime Text等等。在Win7下选用C语言编译器时,可以选择MinGW或者Visual Studio内置的编译器。下面将具体介绍编译器的选择过程和示例说明。 选择编译器 MinGW MinGW是Windows下的一款GNU编译器套件…

    C 2023年5月22日
    00
  • C++实现统计代码运行时间的示例详解

    C++实现统计代码运行时间的示例详解 什么是代码运行时间 代码运行时间指的是从程序开始执行到程序结束运行所需要的时间。在程序开发中,我们通常会关注代码的运行时间,以确定程序的性能和优化方向。 如何统计代码运行时间 一般情况下,我们可以使用系统提供的时间函数来统计代码的运行时间。在 C++ 中,常用的时间函数有 clock 和 chrono。 使用 clock…

    C 2023年5月24日
    00
  • win10系统升级提示错误代码0x80070006-0x2000c该怎么解决

    win10系统升级提示错误代码0x80070006-0x2000c的解决方法 出现win10系统升级提示错误代码0x80070006-0x2000c的原因很多,包括错误的系统配置,损坏的文件或注册表项,软件冲突等等。下面是一些常用的解决方法: 方法一:运行Windows更新故障排除工具 Windows更新故障排除工具是解决Win10升级问题的有力工具。以下是…

    C 2023年5月23日
    00
  • C++重载的奥义之运算符重载详解

    C++重载的奥义之运算符重载详解 什么是运算符重载 C++中的运算符重载指的是对语言中已有的运算符进行重新定义,使其能够支持自定义类型。 运算符重载的语法形式为: 返回类型 operator 运算符符号 (参数列表) { //重载函数体 } 其中,operator表示重载的运算符,符号必须包括在双引号中,如+、-、=等等。 运算符重载的规则 在进行运算符重载…

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