c语言 - 斯堪夫不起作用



在我的代码第二scanf中不起作用,也无法读取字符。我该如何解决?

#include <stdio.h>
int main() {
int a, result;
// ***************** Menu *******************
printf("Hello !!! n The Operations That This Calculator Can Do :");
printf("n1. Simple Operations");
printf("n2. Calculate The Biggest Number");
printf("n3. Taylor expansion");
printf("n4. Sum Digits Of a Number");
printf("n5. Found The Prime Numbers Before The Number That You Entered");
printf("nEnter The Number Of Operation That You Want : ");
scanf_s("%d", &a);
if (a == 1){
    char ch;
    int num1, num2;
    printf("n Please Enter Your Operation Like That (- 5 3 ) : ");
    scanf_s("%c", &ch);
    if (ch == '-'){ scanf_s("%d", &num1); scanf_s("%d", &num2); result = num1 - num2; printf("n > %d", result); }
    if (ch == '+'){ scanf_s("%d", &num1); scanf_s("%d", &num2); result = num1 + num2; printf("n > %d", result); }  }  return 0; }

尝试以下操作:我将scanf_s((更改为scanf,并为%c提供了空间,因为%c转换说明符不会自动跳过任何领先的whitespace,因此,如果在该线路中有一个流浪的newline输入流(例如,从先前的条目中(SCANF调用将立即消耗。

#include <stdio.h>
int main() {
int a, result;
// ***************** Menu *******************
printf("Hello !!! n The Operations That This Calculator Can Do :");
printf("n1. Simple Operations");
printf("n2. Calculate The Biggest Number");
printf("n3. Taylor expansion");
printf("n4. Sum Digits Of a Number");
printf("n5. Found The Prime Numbers Before The Number That You Entered");
printf("nEnter The Number Of Operation That You Want : ");
scanf("%d", &a);
if (a == 1){
char ch;
int num1, num2;
printf("n Please Enter Your Operation Like That (- 5 3 ) : ");
scanf(" %c", &ch);
if (ch == '-'){ scanf(" %d", &num1); scanf(" %d", &num2); result = num1 - 
num2; printf("n > %d", result); }
if (ch == '+'){ scanf(" %d", &num1); scanf(" %d", &num2); result = num1 + 
num2; printf("n > %d", result); }  }
system("pause"); }

最新更新