citywander 发表于 2009-5-15 11:37

关于MFC怎么读入double数据?恳请大家帮忙!

请教:MFC中,文件用fid=fopen(in_name, "r");读入后,由于in_name是char形式的,而我这个文件中的数据是double形式的,怎么把它读到程序中呢?我找了很多,都是什么fscanf,fgets,都是读入字符型的,我不需要读入字符啊,我就想把double的数据读出来,早上试了一上午了,很着急,又没地方请教。请大家帮帮我出下主意啊。

wqsong 发表于 2009-5-15 12:00

你用的是C的输入输出。double类型在C的输入输出中有点问题,最好用float。一般情况精度也够。in_name是文件名,和文件中数据没直接关系的。文件中的格式是根据格式控制符决定的。。。
float data;
fscanf(fid,"%f",&data);

citywander 发表于 2009-5-15 12:16

回复 沙发 wqsong 的帖子

谢谢你。只是我看了一些帮助上面说,fscanf遇到空格就不算了,是不是真的?我的数据之间有很多空格的,那不是就不太准确了?其实我是在别人给我的程序之上改的,但是那个程序的输入文件里的数据是char,那个作者就用了fgets,我现在变了double的输入文件,把文件中的数据赋给Y,
double *Y = (double *)malloc(sizeof(double)*infile_size);
改了float就很多地方都冒出了问题,什么 fatal error LNK1120: 1 unresolved externals
error LNK2019: unresolved external symbol "int __cdecl histc(double const *,int,double,double)"
怎么也搞不明白,后来又试了下:
int county=0;
        char in;
        while(fgets(in,100,fid)) {
    Y=atof(in);
        county++;
        }
也不行,唉,郁闷。
不过还是谢谢你的热心解答。

icefish711 发表于 2009-6-4 21:45

C 读写操作:
#include <iostream>
/*---------C style打开文件,读取数据-------------------*/
/*
       
        stream = fopen( "data.txt", "r" );//data.txt是每一行就是一个double的数据。
        for(i=0;i<datalength;i++)
                { fscanf(stream,"%lf", x+i);}
        fclose(stream);
*/
/*--------------------------------------------*/

也可以用#include <fstream>
#include <fstream>
#define SZ 100//数据长度


Double x;
Double a

        ifstream fdata("data2.txt");
        for (i=0;i<SZ;i++)
        {
                fdata >> x;       
        }
看下行不行
页: [1]
查看完整版本: 关于MFC怎么读入double数据?恳请大家帮忙!