关于MFC怎么读入double数据?恳请大家帮忙!
请教:MFC中,文件用fid=fopen(in_name, "r");读入后,由于in_name是char形式的,而我这个文件中的数据是double形式的,怎么把它读到程序中呢?我找了很多,都是什么fscanf,fgets,都是读入字符型的,我不需要读入字符啊,我就想把double的数据读出来,早上试了一上午了,很着急,又没地方请教。请大家帮帮我出下主意啊。 你用的是C的输入输出。double类型在C的输入输出中有点问题,最好用float。一般情况精度也够。in_name是文件名,和文件中数据没直接关系的。文件中的格式是根据格式控制符决定的。。。float data;
fscanf(fid,"%f",&data);
回复 沙发 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++;
}
也不行,唉,郁闷。
不过还是谢谢你的热心解答。 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]