原汁原味梦魇之龙:C语言的一个问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/25 20:18:09
#include <stdio.h>
#include <conio.h>

void mian(void)
{
char c;
printf("Enter:");
while(1)
{
c = getch();
printf("*");
}
我用这个输出字符的时候,回车键不起作用了,怎么回事啊
如何判断回车键用来中断键入操作?

#define MAXBUFFER 255

void main(void)
{
char password[MAXBUFFER];
int i = -1;

printf("\nPassword: ");
do
{
i++;
password[i] = getch();
puts("*");
}
while(i < 254 && password[i] != '\n' && password[i] != '\r');

password[++i] = '\0';

printf("\nYour password is: %s\n", password);
getch();
}

你把main拼写成mian了……

#include <stdio.h>
#include <conio.h>

void main(void)
{
char c;
printf("Enter:");
while(c!='\n' && c!=13)
{
c = getch();
printf("*");
}
}
有的时候回车会变成ascii码为13的,而不是'\n',10
写两个,保险

不好意思,楼主的这个程序是刚才我发的,只是说明一下怎么用*代替输入的字符,没有给出任何的中止操作。
可以用if(c==13) break;用回车中止。

你用的是while(1),所以当你输入一个字符时,他马上输出一个*,然后有输入回车,他也就像当作输入了一个字符一样,再输出一个*,这好像变成了,你按一个键,他就输出一个*

你可以把改为:
while(scanf("%c",&c))