如何知道用户在C编程中给出的输入是字符串,浮点数还是整数

时间:2017-07-02 22:41:14

标签: c input

用户只能输入一次输入,输出应根据输入打印。

  • 如果用户输入字符串,则应打印" 字符串"。
  • 如果用户输入一个整数,则应打印" 它是整数"。
  • 如果用户输入浮动,则应打印" 它是Float "。

1 个答案:

答案 0 :(得分:0)

使用fgets读取一行,然后使用不同的格式说明符重复调用缓冲区上的sscanf。检查每个sscanf调用的返回值,以查看格式是否正确

char line[80];
int ival;
float fval;

fgets(line, 80, stdin);

if (sscanf(line, "%d", &ival))
    printf("It is integer\n");
if (sscanf(line, "%f", &fval))
    printf("It is float\n");
else
    printf("It isn't an int nor a float; it is a string\n");

顺便说一下,sscanf电话的顺序很重要。从if-else阶梯顶部的最具体的格式说明符开始,以最常规的结尾。

如果你想处理有效的输入,但最后有垃圾,你将不得不使用更复杂的strtol