比如:book1.txt
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
# include & ltstdio.h & gt
#define buff_size 2048 //假設壹行的長度不超過2048字節。
//壹行有多少列?
int get_col(char *buff) {
int i,L=0,N = 0;
l = strlen(buff);
for(I = 1;我& ltl;i++){
if(buff[I]& gt;0x20 & amp& ampbuff[I-1]& lt;= 0x 20)n++;
};
if (buff[0]>0x 20)n++;
返回N;
}
FILE * fin
void main()
{
char name in[80];
int row,col,I,j;
char * buff
浮動* * a;
buff =(char *)malloc(buff _ size * sizeof(char));
printf("輸入文件名book 1 . txt:");
scanf("%s ",name in);//取文件名
fin = fopen(namein," r ");//打開文件
if ( fgets(buff,buff_size,fin)!= NULL)row = 1;//讀取第壹行
col = get _ col(buff);//檢測到多少列
while ( fgets(buff,buff_size,fin)!= NULL)row++;//測量行數
printf("row=%d col=%d\n ",row,col);
倒帶(鰭);
//動態分配二維數組
a =(float * *)malloc(sizeof(float *)* row);
for(j = 0;j & lt排;j++){
a[j]=(float *)malloc(sizeof(float)* col);
}
如果(!a) {printf("內存不足\ n ");退出(a);};
//讀入表格
for(j = 0;j & lt排;j++)
for(I = 0;我& ltcoli++)
fscanf(fin," %f ",& ampa[j][I]);
fclose(fin);
//最後的1列打印在這裏。
for(I = 0;我& lt排;i++) printf("%f ",a[I][col-1]);
//可以分別給幾個壹維數組賦值。
}