你这个基础,给你做了,后面也接不下去,因为读进来的数据根本不是你想象的那样放置。先把基础打好吧,总是临急抱佛脚不行的。那些人平时教他,又不肯好好学,教他多走一步就嫌啰嗦,不见踪影,到出事就再来等靠要,我没按坛柜直接删贴锁贴已经非常仁慈了,宠坏了那些人。
[ 本帖最后由 TonyDeng 于 2015-9-12 11:53 编辑 ]
[ 本帖最后由 TonyDeng 于 2015-9-12 11:53 编辑 ]

授人以渔,不授人以鱼。
程序代码:
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include <stdlib.h>
//===============================数据格式结构
struct DATA
{
DATA();
DATA(char *charnumber);
void DataOutput();
double number[3];
};
DATA::DATA()
{
}
DATA::DATA(char *charnumber)
{
number[0]=0;
number[1]=0;
number[2]=0;
if(strlen(charnumber)!=0)
{
char numbermark =0; //0=整数部分 !0=小数部分
char witchnumber =0; //哪一个数字 0 1 2 三种情况
double littlenumber[11]={0,1e-1,1e-2,1e-3,1e-4,1e-5,
1e-6,1e-7,1e-8,1e-9,1e-10};
for(int i=0;charnumber[i]!='\0';i++)
{
if(witchnumber>2){continue;}
if(charnumber[i]=='.'){numbermark=1;continue;}
if(charnumber[i]==' '||charnumber[i]=='\t'){numbermark=0;witchnumber++;continue;}
if(charnumber[i]<'0'||charnumber[i]>'9'){continue;}
if(numbermark==0)
{
number[witchnumber]*=10;
number[witchnumber]+=(charnumber[i]-'0');
}
else
{
number[witchnumber]+=(charnumber[i]-'0')*littlenumber[numbermark++];
}
}
}
}
void DATA::DataOutput()
{
printf("%f %f %f\n",this->number[0],this->number[1],this->number[2]);
}
//===============================
//===============================声明一个文件类
class TXTFILE
{
public:
TXTFILE(char *txtfilepath);
~TXTFILE();
void changefiletodata(DATA *data);
int getlengthdata();
private:
FILE *txtfilepoint;
};
//===============================
//===============================构造函数定义
TXTFILE::TXTFILE(char *txtfilepath)
{
txtfilepoint = fopen(txtfilepath,"r");
if(txtfilepoint==NULL)
{
printf("open %s error!\n",txtfilepath);
exit(0);
}
}
//===============================
//===============================析构函数定义
TXTFILE::~TXTFILE()
{
fclose(txtfilepoint);
}
//===============================
//===============================文件转数据函数定义
void TXTFILE::changefiletodata(DATA *data)
{
char c2[100]="\0";
int datanumber;
char c1;
for(datanumber=0,rewind(txtfilepoint);(c1=getc(txtfilepoint))!=EOF;)
{
if(c1=='\n') {data[datanumber]=DATA(c2);c2[0]='\0';datanumber++;continue;}
char c3[2];
c3[0]=c1;c3[1]='\0';
strcat(c2,c3);
}
}
//===============================
int TXTFILE::getlengthdata()
{
int datanumber;
char c1;
for(datanumber=0,rewind(txtfilepoint);(c1=getc(txtfilepoint))!=EOF;)
{
if(c1=='\n') {datanumber++;}
}
return datanumber;
}
int main(void)
{
int datanumber=0;
DATA *data;
TXTFILE txtfile("7300.txt");
datanumber=txtfile.getlengthdata();
data = new DATA[datanumber];
txtfile.changefiletodata(data);
for(int i=0;i<datanumber;i++)
{
data[i].DataOutput();
}
system("pause");
return 0;
}