vc从一个txt文档中读取数据,存到二维数组中?
各位大侠,小弟需要用vc从一个txt文档中读取数据,存到二维数组中。希望各位大侠能给出代码,我编出来总有错误。txt内容形式为:0.1992600.4580220.689...
各位大侠,小弟需要用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 展开
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 展开
2个回答
2014-03-07
展开全部
你要知道Vsharp 的除错功能是很强大的。你还得努力啊。可以利用CFile类,每次取一行,然后把每行分割,复制给CString或者你定义的二维数据变量,试试看
追问
可以给个代码吗?没用过你说的那种方法啊,不是很熟悉,你们有经验的是很快的啊
展开全部
哥们 你开了两道题啊 ~~
建议你这样:
#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类型 (你的数组的类型也定义错了),这样非常麻烦,所以从文件读数组一般用上面的方法,而,读文本则用你的方法。
建议你这样:
#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类型 (你的数组的类型也定义错了),这样非常麻烦,所以从文件读数组一般用上面的方法,而,读文本则用你的方法。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询