繁体   English   中英

C Scanf输入测试预期输入格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM