这个C++代码好奇怪,关于getch()函数

来源:百度知道 编辑:UC知道 时间:2024/06/04 16:34:23
#include<stdio.h>
#include<conio.h>
#include<iostream.h>

void main()
{
char a[4];
int i=0;
cout<<"please input password"<<endl;
while(i<4){
a[i]=getch();
i++;
cout<<"*";
}
cout<<endl;
for(i=0;i<4;i++)cout<<a[i];
cout<<endl;
}

不能及时显示*号,要4次输入完成后才可以显示,为什么?
是的,我想每按一次键盘就出现一个 *
----------------------------------------现在把cout<<"*";
改为printf("*");就解决这个问题了,但是为什么呢?

#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;

main()
{
char a[4];
int i=0;
cout<<"please input password"<<endl;
while(i<4){
a[i]=getch();
i++;
cout<<"*";
}
cout<<endl;
for(i=0;i<4;i++)cout<<a[i];
cout<<endl;
getch();
}
我可以编译通过
我想这和编译环境有关,我用DEV-C++就可以实现你说的那种效果
while(i<4){
a[i]=getch();
i++;
cout<<"*";
}这段代码不变

你要求是什么 ~你说下~~你要求他你打一个他就输出个*吗?
我想你需要清楚getch()和getchar()的区别~