我的代码有问题。它应该解析像这样的输入
1 34 a 2 -5 67 c
或
3455 124 -123 111 s 123 3544 f g
或任何其他字符(长度为 1)和数字的组合。这是我的代码:
char oper = 0;
int number = 0;
do{
if(scanf("%d", &number)==1)
{
...
}
else
{
scanf("%c", &oper);
if(oper == 'g')
{
...
}
if(oper == 'h')
{
...
}
...
}
} while(oper != '\n');
当它到达一个字符时,scanf("%c", &oper);
将“\n”复制到oper
中,我希望它是“a”或“s”
出了什么问题,我该如何解决?
最佳答案
scanf("%d"...) 将扫描过去的空格(空格、制表符、换行符)以获取数字。
scanf("%c"...) 将读取下一个字符。
您需要找到一种方法来扫描空白区域。您看过 scanf 格式的定义吗?
Wikipedia与普通的手册页相比,似乎很有帮助。
关于c - 新手,无法使用 scanf() 解析输入,包括简单代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809197/