c语言使用getch的时候,c99下会出现下面错误:
error: implicit declaration of function 'getch' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
我们需要找一个替代方案,下面有个取巧的方法:
使用system,关闭终端缓冲和终端回显:
//需要包含头:stdlib.h
system("stty -icanon"); //关闭终端缓冲区
system("stty -echo"); //关闭终端回显
//代码块
system("stty icanon"); //打开终端缓冲区
system("stty echo"); //打开终端回显
接着就可以通过getchar来替代getch,这样做的原因是getchar是默认启用行缓冲区的,输入的时候不是从键盘读取字符的,所以我们需要先关闭终端缓冲区和终端回显。
下面是使用使用c语言模拟密码输入:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#define MAXLEN 10
int main() {
char ch = 0;
int chint = 0;
int i = 0;
char pwd[MAXLEN];
system("stty -icanon"); //关闭终端缓冲区
system("stty -echo"); //关闭终端回显
printf("Input password: ");
while((ch = getchar())) {
chi

最低0.47元/天 解锁文章
18万+

被折叠的 条评论
为什么被折叠?



