[英]C Scanf input testing for expected input format
我需要制作一个简单的C程序,它将解决预期格式的二次方程式,需要如下所示:
ax ^ 2 + bx + c = dx ^ 2 + ex + 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");
对于像fe这样的每一个输入
'abc','1 x ^ 2 + 1 x + 1 = 0','x ^ 3 ......'
我尝试了if (scanf() != 1)
,但每次都打印出“错误的输出”。 有关如何实现这一目标的任何想法?
如果我只输入'1 x ^ 2 + 1 x + 1 = 0',它会等待下一个可能的输入。
在这种情况下,使用fgets
读取完整输入并使用sscanf
解析值,如下所示。
char buf[100];
fgets(buf,sizeof buf,stdin);
int r = sscanf(buf,"%f x^2 + %f x + %f = %f x^2 + %f x + %f", &a, &b, &c, &d, &e, &f);
if (r!=6)
printf("Wrong input\n");
else
printf("correct\n");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.