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类型 (你的数组的类型也定义错了),这样非常麻烦,所以从文件读数组一般用上面的方法,而,读文本则用你的方法。本回答被提问者采纳

C语言把一些字符串存入一个二维数组(在线等)
猜测:你的目的是读文件中的多行出来,然后分行存储二维数组,最后按每行再输出出来;解决方法:如果是读多行,正常情况下应该是每行每行往外读,而不是一下子全读出来。用一个for循环,每次调fgets函数,只读一行。读一行存一行。然后再for循环往外cout。fgets每次读一行,fscanf则要自己定规则,你很...

VC把一个txt分行输入到内存,哪边错了?
二维数组temp[100][100]中temp[100]存了100个不相连的地址,每一个是一个长度为100的数组的基址

c\/c++读取csv文件到二维数组
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include "stdio.h"#include "stdlib.h"int main(void){ FILE *fp;\/\/声明文件指针 int i=0,j,x;\/\/声明循环控制变量i、j和接收int型数据变量x char str[65][26],a,b,c,d,e,f;\/\/声明接收字符串数组str和输出临时变量a~f ...

C++ 如何格式化读取txt文本文档
你的思路有问题,不必非要用n个数组来存 你先double shuzu[1000]={0};然后读取第一行数据,判断有多少个数,是a或是b不用管,数出数来存入shuzu[0],然后从第二行你依次读入数据,按次序存入shuzu,就行了,以后读时,得到第一个数,然后间隔取,就可以还原了。

vc++读取txt文件,排序,在输出结果为txt文件--电话本
void Txt::readin(Txt &t){ string tfn;string tn;int tnum;char filename[SIZE];ifstream inFile;cout << "输入文件名: ";cin >> filename;inFile.open(filename);if(!inFile.is_open()){ cout << "文件不存在!" << endl;} while(!inFile.eof()){ inFile >> tfn >> tn >> ...

VC++中怎么把输入的姓名放进一个二维数组中?
const int M=20 \/\/名字的长度应该不会超过20吧,数组的后一个长度貌似是一定要给出的。。char a[];cout<<"请输入姓名"<<endl;getline(a[]);for(int i=0;i<n;i++)strcpy(stu[1][M],a[]);\/\/ 包含在 #include <string>中。

...怎样正确的保存到本地的硬盘然后在VC中正确的读入这个矩阵?
最安全的办法,用matlab的fprintf语句输出到文本文件,再用C的fscanf语句读入。

急等!!!如何在vc中将getrows获得的记录写到数组中。
long lValue = 0;switch( variant.vt ){ case VT_BOOL:lValue = variant.boolVal;break;case VT_UI1:case VT_I1:lValue = variant.bVal;break;case VT_UI2:case VT_I2:lValue = variant.iVal;break;case VT_I4:case VT_UI4:lValue = variant.lVal;break;case VT_INT:lValue = variant...

有一个DAT文件 未知其数据结构,只知道它是由二维数组组成的,能用VC把...
j < COLS; j++) { fprintf(fpAscii, "%hu ", nNums[i][j]);} fprintf(fpAscii, "\\r\\n");} fclose(fpDat);fclose(fpAscii);fputs("complete", stdout);system("pause>nul");return 0;} 如果使用windows API的话也可以先用ReadFile读取数据到数组中, 然后用WriteFile写入到文件。

VC中如何将一个二维数组的值赋给另一个二维数组?只能用一行。
include <stdio.h> include <string.h> int main(void){ int a[2][2]={1,2,3,4},b[3][3]={0},i;memcpy(b,a,sizeof(a));\/\/把a数组的所有元素复制到b数组中 for (i = 0; i<9; i++) { printf("%d ",b[i\/3][i%3]);if ((i+1)%3==0) putchar('\\n');} ...

相似回答