各位C/C++大神,菜鸟跪求帮助!!!越快越好......

#include "StdAfx.h"
#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;
#define COUNT 150
struct data {
float dx;
float dy;
float dz;
float dm;
int symbol;
}data[150];

void main(){
int count;
fstream outputFile;
outputFile.open("E:\\Iris.txt",ios::in);
if(!outputFile)
{
cout<<"Can't open the File!"<<endl;
exit(0);
}
for(count=0;count<COUNT;count++)
{
outputFile>>data[count].dx;
outputFile>>data[count].dy;
outputFile>>data[count].dz;
outputFile>>data[count].dm;
data[count].symbol=0;
}
float array[500];
int index=0;
for(count=0;count<COUNT;count++)
{
array[index]=data[count].dx;
array[index+1]=data[count].dy;
array[index+2]=data[count].dz;
array[index+3]=data[count].dm;
index=index+4;/*???麻烦解释一下这个 index=index+4有什么不对呢(+3程序可以运行,但得到的数据不全,但+4运行不正常),或者有没有其他更好的办法把data里的数据存到数组里???*/
}
outputFile.close();
for(count=0;count<COUNT;count++)
{
cout<<"数据第"<<count<<"个是"<<array[count]<<endl;
}
}

/**其中E:\\Iris.txt里的数据如下:
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 54 6
*/

for(count=0;count<COUNT;count++)
{
outputFile>>data[count].dx;
outputFile>>data[count].dy;
outputFile>>data[count].dz;
outputFile>>data[count].dm;
data[count].symbol=0;
}
数组越界,outputFile到结尾了,你还在输入。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-17
for(count=0;count<COUNT;count++)
{
array[index++]=data[count].dx;
array[index++]=data[count].dy;
array[index++]=data[count].dz;
array[index++]=data[count].dm;
}
你写的应该也是对的 看着是没有错误
但是你的文本文件中每个数字之间是隔了一个空格的,你从文本中读取出来数据的时候处理了没有,
你在这个for循环之前先输出一下data中的数据 看跟你想要的结果一样吗追问

输出语句:cout<<count<<":  "<<" dx="<<data[count].dx<<" dy="<<data[count].dy<<" dz="<<data[count].dz<<" dm="<<data[count].dm<<endl;(字数太多,不让提交,所以用图片了,求大神指点)

追答

恭喜你 问题解决了就好

相似回答