做了个输入密码回显星号的代码,但输入超过3个字符就运行错误,求助!
password.cpp
#include <iostream>
#include <string>
using namespace std;
#include "_INCLUDES_\password.h"
string pwd = "\0";
int main(int argc,char *argv[]) {
pwd = getpassword();
cout << "Your password is:\t" << pwd << endl;
return 0;
}
password.h
#include <conio.h>
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;
string getpassword() {
string str = "\0";
int i = 0;
for (;;) {
str[i] = getch();
if (str[i] == '\n') {
cout << endl;
str[i] = '\0';
break;
}
else cout << "*" << flush;
++ i;
}
return str;
}