【发布时间】:2020-10-14 13:14:58
【问题描述】:
我正在尝试制作 C 计算器应用程序。这意味着有输入“x + y =”,我需要计算结果。我的问题是当用户输入例如“6 + 4”时。这意味着缺少等号。但程序正在等待更多数据。按下回车后如何阻止scanf等待更多数据并只是说这个输入错误?
double x,y;
char c; //this desires if its plus, minus ...
if(scanf("%lf %c %lf =",&x,&c,&y)!=3)
{
printf("wrong input\n");
return 1;
}
【问题讨论】:
-
先用
fgets()读取整行,再用sscanf()解析怎么样? -
您不能将
scanf用于不可预知的输入。您需要使用fgets,然后自己解析该行,可能使用sscanf
标签: c