C语言读取文本文件浮点数。

C语言读取文本文件浮点数。,第1张

#include <stdio.h>

#include <math.h>

#include <string.h>

#define MAXLEN 20

int main () {

FILE *fp

int ch,i = 0,n = 0

char str[MAXLEN],filename[] = "indata.txt"

if((fp = fopen(filename,"rt")) == NULL) {

printf("不能打开文件:%s\n",filename)

return 1

}

while((ch = fgetc(fp)) != EOF) {

if(ch == '\t' || ch == '\n') {

if(i > 0) {

str[i++] = '\0'

printf("%g\n",atof(str))

i = 0

++n

}

}

else str[i++] = ch

}

printf("有效数据个数:%d\n",n)

fclose(fp)

return 0

}

问题很简单,只要将:fscanf(fp,"%.8f

%.8f\n",&a[2*i],&a[2*i+1])

改为:fscanf(fp,"%lf%lf",&a[2*i],&a[2*i+1])

注意:double双精度型数值的输入必须用%lf,而它的输出则和float单精度型数值一样用%f,%e均可。同时注意fscanf()和scanf()类似在输入数据的时候不能指定数据的精度。fscanf()可以自动判断回车,所以%.8f最后的'\n'也是多余的。而且对本题,"%lf%lf"之间加不加空格都是一样的,fscanf()遇到空格会自动判断第一个数据读入完成,接下来的就是第二个数据。当然如果是数值加字符,那么空格就必不可少要和文件中严格对应了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11924035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存