프로그램을 작성하려고하는데 화면을 지우고 다음 화면으로 넘어 가기 전에 뭔가를 표시합니다. 시스템을 사용하여 화면을 지우고 있습니다. 하지만 화면이 너무 빨리 지워지는 것을 알았습니다. 내 말은, 비록 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 !!
}
인라인을 사용하지 않는 이유는 무엇입니까? 매크로는 이것을위한 좋은 도구가 아닙니다. –