【发布时间】:2017-09-24 00:53:28
【问题描述】:
在我的代码中,第二个 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实际上确实 工作并读取按Enter发送的换行符。为什么不看ch的内容呢? -
试试 scanf_s("%c", &ch, 1);
-
您使用的编译器没有为
scanf_s("%c", &ch);生成警告?
标签: c char printf character scanf