我听说过这两种功能,但我从来没有真正理解它们的区别。是gets()
为了在不按 Enter 的情况下获取字符串,以及在不按 Entergetch()
的情况下只获取一个字符吗?
谢谢
getch()
是 Windows 和 DOS 系统上的一个函数,conio.h
它在 C 中没有标准化。它用于仅(确切地)获取单个字符。它也存在于curses.h
*nix 系统中(根据 Mike 在评论中的说法)。
gets()
是 C 中的一个标准函数,在新C11
标准中已被删除。你可以用它来输入一个字符串,但你永远不应该使用它。您不能使用它来安全地输入字符串,因为只要您键入它就会写入内存。所以你可以很容易地得到缓冲区溢出。
我从来没有真正理解他们的区别
这些方法具有明显不同的签名(很明显类似于语义恕我直言):
char *gets( char *str );
int getch(void);
请注意,这getch()
是特定于平台的表示法,等效的标准定义getc()
函数需要一个FILE*
参数。
这getch
是平台或编译器特定的功能。
该gets
函数用于从标准(控制台)输入返回零个或多个字符。
编辑 1:
根据您的编译器实现,该getch
函数可用于在不等待用户的情况下获取字符,或者在不回显到控制台的情况下获取字符。
一个函数获取单个字符,另一个获取多个字符。
gets()
已在 C11 中删除并在 C++11 中标记为已弃用。
我没听说过getch()
。你的意思是getchar()
?
无论如何,您应该能够自己查找文档。这两个功能是cstdio