我有一個包含數字(整數)的行和列形式的文件(包括.dat和.txt格式)。我需要從這個文件中讀取 數字(整數)。該數據將被存儲在二維數組中。這個數組是在我的C程序中定義的。 我試圖在C中使用文件處理來實現這一點,但它並沒有讀取整個文件。 程序突然停止在文件中的某些數據並退出程序。 以下是用於此我的C代碼:從文件中讀取數字(整數)並將其存儲爲二維數組
#define ROW 512
#define CLMN 512
for(i = 0; i < ROW; i++)
{
for(j = 0; j < CLMN; j++)
{
array[i][j] = 0;
}
}
:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define EOL '\n'
int main(){
int i = 0,j = 0,array[][]; //i is row and j is column variable, array is the target 2d matrix
FILE *homer;
int v;
homer = fopen("homer_matrix.dat","w"); //opening a file named "homer_matrix.dat"
for(i=0;;i++)
{
for(j=0;;j++)
{
while (fscanf(homer, "%d", &v) == 1) //scanning for a readable value in the file
{
if(v==EOL) //if End of line occurs , increment the row variable
break;
array[i][j] = v; //saving the integer value in the 2d array defined
}
if(v==EOF)
break; //if end of file occurs , end the reading operation.
}
}
fclose(homer); //close the opened file
for(i=0;i<=1000;i++)
{
for(j=0;j<=1200;j++)
printf(" %d",array[i][j]); //printing the values read in the matrix.
printf("\n");
}
}
謝謝你們的反應,但問題是別的東西.. 使用下面的代碼分配給2-d陣列的存儲
另外,我在下面的代碼中修改了'r'的權限。
homer = fopen(" homer_matrix.txt" , "r");
但是,我仍然無法將2-D條目放入我的變量'數組'中。
p.s.所述「homer_matrix.txt」是使用MATLAB生成通過以下命令:
CODE:
A=imread('homer.jpg');
I=rgb2gray(A);
dlmwrite('homer_matrix.txt',I);
此代碼將生成的文件「homer_matrix.txt」包含在768 X中的圖像的灰度值1024條目表單。
謝謝,我剛纔我的編輯與編輯的代碼的問題,這將是巨大的,如果你能幫助 –
@JimmyThakkar如何是你的陣列'array'現正在申報?請顯示你的數組的聲明。 – ouah
的#define ROW 234 的#define CLMN 327 INT主(無效) { INT I = 0,J = 0,陣列[ROW] [CLMN]; // i是行,j是列變量,array是目標2d //矩陣 –