声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2889|回复: 3

[C/C++] 关于MFC怎么读入double数据?恳请大家帮忙!

[复制链接]
发表于 2009-5-15 11:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2009-5-15 12:00 | 显示全部楼层
你用的是C的输入输出。double类型在C的输入输出中有点问题,最好用float。一般情况精度也够。in_name是文件名,和文件中数据没直接关系的。文件中的格式是根据格式控制符决定的。。。
float data;
fscanf(fid,"%f",&data);

评分

1

查看全部评分

 楼主| 发表于 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[5000];
        while(fgets(in,100,fid)) {
    Y[county]=atof(in);
        county++;
        }
也不行,唉,郁闷。
不过还是谢谢你的热心解答。
发表于 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[SZ];
Double a[ArP+1]

        ifstream fdata("data2.txt");
        for (i=0;i<SZ;i++)
        {
                fdata >> x;       
        }
看下行不行
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-13 04:06 , Processed in 0.084216 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表