我不能SCANF后数
我的代码炭我不能SCANF后数
#include <iostream>
using namespace std;
int main()
{
int number=0;
char choice;
// srand(time(0));
printf("Number: ");
scanf("%d", &number);
printf("Character: ");
scanf("%c",&choice);
}
我可以键入数字,但在控制台关闭,当我想输入的字符,该怎么办?
我假设你的意思是:
scanf("%d", &number);
但你真正的问题是你的
scanf("%c",&choice);
正在读取换行符(回车键),您的号码后输入。
因此改变:
scanf("%d", &number);
要:
scanf("%d ", &number); /* note the space after %d */
“吸起来” 那换行。
更多信息:最%something
符在scanf会跳过开头的“空白” (空格,制表符,换行符等)读你想让它之前的事情。 %c
是该规则的例外。 scanf格式的空格也可以匹配任意类型的空格。
更多更多信息:许多程序员避开scanf
以支持其他I/O方法,因为难以有效且安全地使用它。
每个新程序员在学习做控制台IO时都会遇到一个问题。 –
所以我扫描一个数字后,我不能扫描一个字符?如果我尝试通过“C”而不是C++编程它?我不明白你的代码,你是否修复了任何问题?或不能完成? – Sick654
注意增加空格,然后阅读关于为什么1空间很重要的“更多信息” –
我不能在这里插入库,但它的工作原理。 printf在控制台中显示“Number:”,然后输入我的自定义编号,但是在输入控制台后,控制台结束了,但没有给我添加字符的可能性。我用cout/cin,它工作,但printf/scanf不工作..为什么? – Sick654
什么*确切*你打字?我敢打赌,你正在输入的内容与你所说的不同。 –