gpt4 book ai didi

c++ - 如何将 cout/cins 翻译成 printf/scanfs?

转载 作者:太空狗 更新时间:2023-10-29 21:25:54 25 4
gpt4 key购买 nike

我编写了一个简单的游戏。我知道如何使用 cout/cin,但在使用 printf/scanf 时遇到问题。下面的代码适用于 cout/cin。问题是,如何将它们转换成 printf/scanf?为什么评论里的代码不起作用?

编辑:我的意思是,如果我删除 cout/cin 行,而当我改用 printf/scanf 时,它无法正常工作。

#include <iostream>
#include <time.h>

using namespace std;

int main()
{
srand(time(NULL));
int min=0, max=1000, guess, counter=0;
bool winner=false;
char answer;

while(counter<10){
guess = rand()%(max-min)+min;
// printf("Did you pick %d? \t", guess);
// scanf("%c", &answer);
cout << "Did you pick " << guess << "?\t";
cin >> answer;
if(answer=='y'){ // yes
winner=true;
// printf("Computer wins.\n");
// printf("You picked: %d", guess);
cout << "Computer wins." << endl;
cout << "You picked: " << guess;
break;
}
else if(answer=='m'){ // more
min=guess;
counter++;
}
else if(answer=='l'){ // less
max=guess;
counter++;
}
}
if(winner==false){
// printf("User wins.\n");
cout << "User wins." << endl;
}
return 0;
}

最佳答案

问题是 scanf() 没有从标准输入中删除换行符 '\n',所以在下一次迭代中,下一个 scanf() 会读取它并尝试处理它,似乎忽略了输入。
试试这个:

scanf("\n%c", &answer);

这样,您就可以期待换行符和 scanf() 消耗它。

关于c++ - 如何将 cout/cins 翻译成 printf/scanfs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com