【发布时间】:2016-06-08 18:16:47
【问题描述】:
这是几年前的一道考试题,我正在努力解决它。
我必须构建一个程序,从文本文件中读取一组数字,中间有一个空格,可以是整数或浮点数。然后它使用递归函数打印具有最大位数的数字。
我不知道如何从文件中读取数字。如果我像浮点数一样阅读它们,它们最终会得到相同数量的数字。这是我的代码,直到知道,但我不知道如何继续。 例如:
在文本文件中我们有数字: 1 2 1.5 1.456 2 2.78 7
位数最多的数是 1.456 4 位数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,nr=0;
float v[100];
FILE *fp;
fp = fopen("text.txt","r");
while(fscanf(fp,"%f",&v[nr])==1){
nr++;
}
fclose(fp);
return 0;
}
【问题讨论】:
-
你应该检查 fp
if (fp==NULL){ /* error */ } -
@Michi 我总是这样做,但现在不是我的问题
-
你能举一个更好的例子吗?输入输出示例?
-
然后向我们展示该文件的可能内容以及@Tyler 所说的输入/输出
-
来自@Tyler 的评论,强调输出(可能还有一些关于你的递归函数如何工作的东西,因为它似乎不适用于所有浮点数)。
标签: c file floating-point numbers