【发布时间】:2018-10-24 07:37:05
【问题描述】:
我需要制作一个简单的 C 程序,它会以预期的格式求解二次方程,需要像这样:
a x^2 + b x + c = d x^2 + e x + f
我正在使用 scanf 读取输入,它按预期工作。但我需要为我的 scanf 读数实施一些输入测试,就像现在这样:
scanf("%f x^2 + %f x + %f = %f x^2 + %f x + %f", &a, &b, &c, &d, &e, &f);
对于每个输入,我需要printf("Wrong input\n");,例如 f.e.
'abc', '1 x^2 + 1 x + 1 = 0', 'x^3...'
我尝试了if (scanf() != 1),但它每次都会打印“错误输出”。
关于如何实现这一点的任何想法?
【问题讨论】:
-
试试
if (scanf(....) != 6)。 -
它可以,但是当输入不完整时如何完成'错误输入'? F.e.如果我只输入 '1 x^2 + 1 x + 1 = 0' 它会等待下一个可能的输入...
-
您可能必须开始将用户输入作为字符串读取并自己解析。
-
@JiříPašek 检查我的回答,它会告诉您如何处理您的用例。