经过几个小时的搜索后,我找不到答案,但如果这是重复的,请指出我正确的方向。
C程序是否会从键盘接受标准表单输入scanf("%f",&float);
之类的内容。标准格式是将2400这样的数字写成2.4E3,如果这有助于您理解我的要求。
我必须强调这必须来自键盘。
答案 0 :(得分:2)
是
scanf
的工作方式相同,无论stdin
是否连接到终端,文件或其他输入流。
%a
,%e
,%f
,%g
scanf格式代码都做同样的事情:解释{{{{{{[{ 1}}(§7.21.6.2/ 12)。 ({1}},strtod
,%A
和%E
- 同一条款的第14段也是如此。)冗余是因为%F
格式接受相同的格式代码为%G
。
scanf
接受以下任何一项(§7.22.1.3/ 3):
- 非空的十进制数字序列,可选地包含小数点字符,然后是6.4.4.2中定义的可选指数部分;
- 一个0x或0X,然后是非空的十六进制数字序列,可选地包含一个小数点字符,然后是6.4.4.2中定义的可选二进制指数部分;
- INF或INFINITY,忽略大小写
- NAN或NAN(n-char-sequenceopt),忽略NAN部分的情况,......
答案 1 :(得分:1)