如何将控制台的输入转换为任何类似于输入密码的输入
答
stty(1)对我的作品在Linux中
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char buf1[100], buf2[100];
size_t len1, len2;
system("stty -echo");
printf("Enter Password: ");
fflush(stdout);
fgets(buf1, sizeof buf1, stdin);
len1 = strlen(buf1);
if (len1 && buf1[len1 - 1] == '\n') buf1[--len1] = 0;
puts("");
system("stty echo");
printf("Enter Password again: ");
fflush(stdout);
fgets(buf2, sizeof buf2, stdin);
len2 = strlen(buf2);
if (len2 && buf2[len2 - 1] == '\n') buf2[--len2] = 0;
puts("\n\n");
printf("First password: [%s]\n", buf1);
printf("Second password: [%s]\n", buf2);
return 0;
}
答
据我了解,没有标准的输入程序没有回声输入。你将不得不使用平台特定的功能。但是,如果您使用的是GUI框架,则有些文本输入字段用于密码,并且在Windows和Linux上兼容。
喜,在Windows _getch()似乎只在同一时间得到一个字符.... 我能得到通过anyfunctions一个字符串? – 2009-12-24 06:11:41
我不知道任何函数不会回显并返回一个字符串。您可以在循环中调用_getch(),将输入的字符附加到字符串中,并在遇到换行符时中断。 – codaddict 2009-12-24 06:17:47