在c编程中getch()和getchar()有什么区别?


回答 1:

感谢您的A2A。

getchar():getchar()函数是C标准库函数(在stdio.h中声明),它从stdin中获取字符(无符号字符)。

getch():getch()函数不是C标准库的一部分。它在conio.h头文件中定义。它主要由MS-DOS编译器使用,例如:TurboC。但是,如果要在其他某些编译器(不是全部)中使用它,则需要下载conio.h文件,并将其包含在外部代码中。

一些主要区别:

  1. getchar()在stdio.h头文件中声明。但是,getch()在conio.h头文件中声明。如果使用getchar(),则需要在控制台窗口中输入字符后按Enter键。但是,如果使用getch(),则无需在控制台窗口中输入字符后再按Enter键(因为它不使用任何缓冲区,因此输入的字符将立即返回,而无需等待enter键)。如果使用getchar(),则可以在控制台窗口中看到正在输入的字符。但是,如果使用getch(),则无法在控制台窗口中看到正在输入的字符。因此,如果要通过控制台窗口输入密码,getch()可能会很有用.getchar()主要用于从用户获取字符输入。而getch()主要用于保留输出屏幕。

回答 2:

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

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

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

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

资料来源:Geekforgeeks


回答 3:

首先,getch()不是标准C库函数的一部分。

它是conio.h标头文件的一部分,该文件可以由某些编译器(例如TURBO-C)提供。

getch语法:int getch(void);

getch直接从键盘读取单个字符,而不回显屏幕。此函数返回从键盘读取的字符.getch不等待用户从控制台读取字符后做出响应。

getchar()用于在运行时获取或读取输入(即单个字符)。此函数返回从键盘读取的字符.getchar()函数等待用户响应(即按Enter键等任何键)。

getchar语法:int getchar(void);

getchar的C示例

void main(){

char ch; ch = getchar(); printf(“输入字符为:%c”,ch);

}

C的例子

char ch; ch = getch(); (或)getch();


回答 4:

getch()在控制台上从用户读取单个字符,而不回显它。

getchar()从控制台上的用户读取单个字符,并回显该字符,但需要在最后按Enter键。

要使用简单的编码示例来了解有关getch()和getchar()的更多信息,请阅读C-未格式化的输入函数-Decodejava.com

希望能帮助到你。祝一切顺利!


回答 5:

如果看一下GNU C手册[1],您会发现这两种真菌:

int getchar(无效)
int getc(文件*流)

第一个是第二个的简写,根据实现的不同,它实际上可能是一个读取如下内容的宏:

#定义getchar()getc(stdin)

这些函数从输入流中读取一个键,并将其作为int返回。问题在于终端通常以所谓的“煮熟模式”运行,即,您必须等待用户按下Enter键才能获得输入。

您提到的函数getch()不是标准函数(需要conio.h,这是一个非标准的,高度面向DOS的头文件)。它的主要优点是它无需等待用户按Enter即可读取键,这对于游戏和其他交互式程序(如文本编辑器)非常重要。为了在类似Unix的系统中获得相同的功能,您需要修改终端的输入处理行为,或者使用ncurses之类的第三方库。

脚注

[1]字符输入(GNU C库)


回答 6:

如果看一下GNU C手册[1],您会发现这两种真菌:

int getchar(无效)
int getc(文件*流)

第一个是第二个的简写,根据实现的不同,它实际上可能是一个读取如下内容的宏:

#定义getchar()getc(stdin)

这些函数从输入流中读取一个键,并将其作为int返回。问题在于终端通常以所谓的“煮熟模式”运行,即,您必须等待用户按下Enter键才能获得输入。

您提到的函数getch()不是标准函数(需要conio.h,这是一个非标准的,高度面向DOS的头文件)。它的主要优点是它无需等待用户按Enter即可读取键,这对于游戏和其他交互式程序(如文本编辑器)非常重要。为了在类似Unix的系统中获得相同的功能,您需要修改终端的输入处理行为,或者使用ncurses之类的第三方库。

脚注

[1]字符输入(GNU C库)


回答 7:

如果看一下GNU C手册[1],您会发现这两种真菌:

int getchar(无效)
int getc(文件*流)

第一个是第二个的简写,根据实现的不同,它实际上可能是一个读取如下内容的宏:

#定义getchar()getc(stdin)

这些函数从输入流中读取一个键,并将其作为int返回。问题在于终端通常以所谓的“煮熟模式”运行,即,您必须等待用户按下Enter键才能获得输入。

您提到的函数getch()不是标准函数(需要conio.h,这是一个非标准的,高度面向DOS的头文件)。它的主要优点是它无需等待用户按Enter即可读取键,这对于游戏和其他交互式程序(如文本编辑器)非常重要。为了在类似Unix的系统中获得相同的功能,您需要修改终端的输入处理行为,或者使用ncurses之类的第三方库。

脚注

[1]字符输入(GNU C库)


回答 8:

如果看一下GNU C手册[1],您会发现这两种真菌:

int getchar(无效)
int getc(文件*流)

第一个是第二个的简写,根据实现的不同,它实际上可能是一个读取如下内容的宏:

#定义getchar()getc(stdin)

这些函数从输入流中读取一个键,并将其作为int返回。问题在于终端通常以所谓的“煮熟模式”运行,即,您必须等待用户按下Enter键才能获得输入。

您提到的函数getch()不是标准函数(需要conio.h,这是一个非标准的,高度面向DOS的头文件)。它的主要优点是它无需等待用户按Enter即可读取键,这对于游戏和其他交互式程序(如文本编辑器)非常重要。为了在类似Unix的系统中获得相同的功能,您需要修改终端的输入处理行为,或者使用ncurses之类的第三方库。

脚注

[1]字符输入(GNU C库)


回答 9:

如果看一下GNU C手册[1],您会发现这两种真菌:

int getchar(无效)
int getc(文件*流)

第一个是第二个的简写,根据实现的不同,它实际上可能是一个读取如下内容的宏:

#定义getchar()getc(stdin)

这些函数从输入流中读取一个键,并将其作为int返回。问题在于终端通常以所谓的“煮熟模式”运行,即,您必须等待用户按下Enter键才能获得输入。

您提到的函数getch()不是标准函数(需要conio.h,这是一个非标准的,高度面向DOS的头文件)。它的主要优点是它无需等待用户按Enter即可读取键,这对于游戏和其他交互式程序(如文本编辑器)非常重要。为了在类似Unix的系统中获得相同的功能,您需要修改终端的输入处理行为,或者使用ncurses之类的第三方库。

脚注

[1]字符输入(GNU C库)