vc从一个txt文档中读取数据,存到二维数组中?

各位大侠,小弟需要用vc从一个txt文档中读取数据,存到二维数组中。希望各位大侠能给出代码,我编出来总有错误。
txt内容形式为:
0.199260 0.458022 0.689660
0.531890 0.864469 0.305692
0.378529 0.556947 0.784653
0.432658 0.256456 0.248764

你要知道Vsharp 的除错功能是很强大的。你还得努力啊。可以利用CFile类,每次取一行,然后把每行分割,复制给CString或者你定义的二维数据变量,试试看追问

可以给个代码吗?没用过你说的那种方法啊,不是很熟悉,你们有经验的是很快的啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-19
哥们 你开了两道题啊 ~~
建议你这样:
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
#include<cstdlib>
#include <iostream>
#include "string.h"
#include "stdlib.h"
using namespace std;
#define N 3
void main()
{
FILE *f = NULL;
int i=0,j=0;
float Property[N][4],tempf;
char str[100];
f=fopen("1.txt","r");
if(f==NULL) {cout<<"Error, file don't open!"<<endl; return;}
//while(!feof(f))
//{
// fgets(str, 100, f);
// for(j=0;j<4;j++)
// {
// Property[i][j] = str[j] - 48;
// cout<<Property[i][j]<< " ";
// }
// cout<<endl;
// i++;
//}

for (i=0;i<N;i++)
{
for (j=0;j<4;j++)
{
fscanf(f,"%f",&Property[i][j]);
}

}

for (i=0;i<N;i++)
{
for (j=0;j<4;j++)
{
printf(" %f",Property[i][j]);
}
printf("\n");
}

getchar();
fclose(f);
}

你本身的代码fgets是读取一行,应该按空格把一行的字符串分成不同数字的字符串,然后还得atof将字符串转换成float类型 (你的数组的类型也定义错了),这样非常麻烦,所以从文件读数组一般用上面的方法,而,读文本则用你的方法。本回答被提问者采纳
相似回答