在c中跳过字符
为什么此代码不能按预期工作,它读取第一个和第二个数字,但不读取中间的字符。使用在c中跳过字符,c,scanf,C,Scanf,为什么此代码不能按预期工作,它读取第一个和第二个数字,但不读取中间的字符。使用scanf()很难。这里,stdin上有一个换行符,您在第一个数字后按enter键。这就是你读到的角色。某些格式转换忽略空白,但%c不忽略空白 要使其忽略前导空格,应改为使用 int main(){ int firstNumber, secondNumber, thirdNumber; char oper; scanf("%d", &firstNumber); printf("
scanf()
很难。这里,stdin
上有一个换行符,您在第一个数字后按enter键。这就是你读到的角色。某些格式转换忽略空白,但%c
不忽略空白
要使其忽略前导空格,应改为使用
int main(){
int firstNumber, secondNumber, thirdNumber;
char oper;
scanf("%d", &firstNumber);
printf("%d\n", firstNumber);
scanf("%c", &oper);
printf("%c\n", oper);
scanf("%d", &secondNumber);
printf("%d\n", secondNumber);
return 0;
}
格式字符串中的空格告诉
scanf()
忽略它找到的任何空白,因此您将读取一个非空白字符。read。您应该测试它的返回计数。阅读也可以定义“奇怪的东西”。我所说的“奇怪”是指它不阅读它,只是略过它,我认为它可能是重复的
scanf(" %c", &oper);