【发布时间】:2014-11-04 04:34:22
【问题描述】:
#include <stdio.h>
int main ()
{
double a=0;
char b=0;
scanf ("%d%c",&a,&b);
printf ("%d,%c", a, b);
return 0;
}
这是我编写的一个快速测试程序的代码,用于在 C 中使用 scanf 函数。我试图让用户输入类似 78X + 5 = 19 的内容(然后按回车键),然后将其解析为变量a、b 和 c 其中在这种情况下 a=78、b=5、c=19。在示例代码中,当我输入 78X 时,c 不会将值存储到 b 并且只打印“78”,然后终止。为什么它不向 b 存储值?
【问题讨论】:
-
这不是办法。 "78X+5 = 19" 是相对于 C 的字符串,因此您需要将整个表达式视为通过它解析的字符串并获取 a、b 和 c 所需的值
-
您不会对
scanf走得太远,因为它对于基本输入以外的任何内容都不是很灵活。研究使用正则表达式库或编写更详细的解析器。