我正在嘗試編寫一個程序,其中我正在顯示某些內容,然後清除屏幕並移至下一個屏幕。我正在使用系統(「清除」)清除屏幕。但我注意到它只是以太快的速度清除屏幕。我的意思是,即使我已經放了一個getchar(),它只是不等待鍵盤輸入並執行下一個命令。我無法弄清楚爲什麼!如何在清除屏幕之前等待鍵盤輸入(getchar不起作用)
這是我爲這應該等待擊鍵暫停宏代碼:
#define pause() \
do{ \
cout<<"Press any key to continue";\
getchar();\
} while(0);
下面是它使用上面的宏代碼,但下面的代碼不會等待被按下的鍵在清除屏幕之前!
void registerUser()
{
string uid,passwd;
cout <<"Enter UID: ";
cin >> uid;
cout<<" Enter Password: ";
cin>>passwd;
bool ret = addUser(uid,passwd);
if (ret == false)
{
cout<<"User "<< uid <<" already exists\n"; // This message is not displayed
}
else
{
cout<<"User " << uid <<" Successfully added\n"; // This message is not displayed
}
pause(); // Program does not wait here as expected
system("clear"); // Screen is cleared immediately !!
}
爲什麼不使用內聯?宏不是一個好的工具 –