【发布时间】:2017-07-02 22:41:13
【问题描述】:
用户只输入一次,输出应根据输入打印。
- 如果用户输入一个字符串,它应该打印“It is string”。
- 如果用户输入一个整数,它应该打印“It is Integer”。
- 如果用户输入一个浮点数,它应该打印“It is Float”。
【问题讨论】:
-
这取决于程序员,他如何接受输入!
-
以字符串的形式读取数据(
fgets()可能——可能,甚至),然后分析字符串。您可以使用sscanf()或strtol()或strtod()等来决定字符串中的内容。由于您捕获了输入,因此您可以以不同的方式对其进行分析。 -
没有来自
stdin的输入是int或float。输入是文本,并进行相应的解释。假设输入是01EFh。是数字还是字符串? -
您可以通过chux 来查看answer 的问题How can I know if the number given by the user is Integer or double?,该问题接近重复,并且答案(应该)有效。或者,它可以使用
%n而不是%c并检查结尾是否为空字节(因此它会跳过前导和尾随空格)。如果整数和浮点数都没有导致字符串结尾,则输入不是整数或浮点数,因此它必须是字符串。 -
还有这个answer by user694733 到问题How to check if the number is integer or float?。这使用了一次
%n- 它应该使用两次。