使用fscanf查看您是读取int还是double

时间:2015-05-19 20:12:28

标签: c parsing int double scanf

我有一个我想用C阅读的文本文件。它包含这种格式的行:%d %d (%d or %lf)。 3行的一个例子:

1 0 44
2 0 84.13
3 1 15.07

但最后一个号码可以是intdouble,也可以是任意的。无论数据类型如何,我如何从文本文件中读取?

1 个答案:

答案 0 :(得分:1)

因为float可以保存整数但反之不然。只需像浮点数一样读取数据,并使用类似

的内容检查它是否为整数
if(ceilf(f) == f)
{
  i=(int)f;
}
//Here i is an integer and f is the float you read using %f

要查看有关如何检查float是否为int的更多方法,请参阅

Checking if float is an integer