Pon*_*n-3 0 c++ loops do-while
我试图在do while函数中运行一些代码:
do {
printf("\nThis game has two different modes: I Guess, You Guess\n");
Sleep(2000);
printf("Which mode do you want to play?\n");
cin >> mStr;
cout << "Are you sure you want to play " << mStr << " mode?";
cin >> choice;
} while (choice != "No");
Run Code Online (Sandbox Code Playgroud)
但是,每次我输入mStr(一个char数组)时,它都会重新启动.它甚至没有执行cout.
以下是名为char的数组:
char mStr[10];
char choice[4];
Run Code Online (Sandbox Code Playgroud)
另外,我怎么能用printf()而不是cout呢?我正努力练习.
编辑:
这是新代码:
do {
printf("\nThis game has two different modes: I Guess, You Guess\n");
Sleep(2000);
printf("Which mode do you want to play?\n");
cin >> mStr;
printf("Are you sure you want to play %s mode?", mStr); //Cuts off here and doesnt display the 'Guess' part of I Guess
cin >> choice;
} while (strcmp(cKey, choice) != 1);
Run Code Online (Sandbox Code Playgroud)
你不能通过使用!=,你需要使用strcmp,来比较char数组:
while (strcmp(choice, "No")!=0)
Run Code Online (Sandbox Code Playgroud)
或者只是改变:
std::string mStr;
std::string choice;
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话
while (choice != "No")
Run Code Online (Sandbox Code Playgroud)
编辑:
正如Jarryd在我的评论中提到的,如果你输入超过mStr长度的字符,选择它是未定义的行为.