如何将COUT/CINS转换为printf/scanfs
How to translate cout/cins to printf/scanfs?
我编码了一个简单的游戏。我知道如何使用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()不会从stdin中删除newline' n'字符,因此在下一个迭代中,下一个scanf()读取它并尝试处理它,似乎忽略了输入。
改用此方法:
scanf("n%c", &answer);
这样,您期望newline和scanf()消耗它。
相关文章:
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 内联程序集printf将整数解释为地址
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- C++ Setter/Getter,cout 工作,printf 失败
- Printf 命令不打印时添加了查找常见除数的新代码
- SIGSEGV, 分段错误. 而 printf() 数组索引的值
- 为什么在包含iostream时可以使用printf()?
- 创建具有验证和语法突出显示的自定义 printf
- 0x%08lx 格式说明符在 printf 语句到 cout
- C printf 无法从终端按预期工作
- Printf 和 Echo 提供不同的输出
- C++ - scanf() 和 printf() 执行顺序不对
- cout 打印不准确的结果,printf 打印准确的结果
- 了解 printf 格式规范中的 %03.3u
- redefine printf(), sprintf(), etc. arm-none-eabi toolchain
- 为什么 printf 在 C++ 中的执行速度比 cout 快?另外scanf比cin慢,为什么?
- C++, printf vs cout performance
- printf 数据类型说明符复杂问题
- 在"printf"中使用标签"h"或"hh"是否涉及未定义的
- 如何将COUT/CINS转换为printf/scanfs