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