2009-02-26 75 views
1

我是C++新手,我編寫了680x680二維數組,並且我試圖將它寫入到txt文件中。不幸的是,我無法定期沿其尺寸寫入二維陣列。 另外我想從txt文件讀取二維數組。我的代碼如下。你能幫我嗎?使用Visual C++編寫二維數組到文件和從文件讀取二維數組

/*Declaration 680 *680 multidimensional array*/ 
array< array<double>^ >^ arr = gcnew array< array<double>^ >(680); 

for (j=0;j<arr->Length;j++){ 
    arr[j]=gcnew array<double>(680);} 

/*Write double array to file*/ 

FILE *OutFile = fopen("C:\\test.txt","w++"); 

for(n=0;n<=(N-1);n++){ 
    fprintf(OutFile,"\n "); 
    for(k=0;k<=(N-1);k++){ 
     fprintf(OutFile,"\t %f ",dizi[n][k]);}} 

fclose(OutFile); 

/* Declaration array reading from file*/ 

array< array<double>^ >^ read = gcnew array< array<double>^ >(680); 

for (j=0;j<read->Length;j++){ 
    read[j]=gcnew array<double>(680);} 

/* reading array from file*/ 

FILE *InFile = fopen("C:\\test.txt","r"); 
double db; 
for(n=0;n<=(N-1);n++){ 
    for(k=0;k<=(N-1);k++){ 
    fscanf(InFile,"\t %f ",&db); 
    read[n][k]=db; }} 
fclose(InFile); 

問候......

回答

0

沒有時間通過​​對此進行了詳細的工作,現在,你可能有一個看看周圍(谷歌或SO)使用單詞「系列化」和「反序列化」。


後來:我不做視覺什麼,所以我會忽略任何語法相關。

  1. 它編譯?
  2. 如果是這樣,它運行沒有崩潰?
  3. 如果是這樣,你直接看了看輸出嗎?它給你所期望的?
  4. 使用fscanf進行輸入分析非常棘手。你需要非常小心,讓你的空白字符匹配。 Look here.你最大的問題似乎是你正在寫新行,但不允許輸入包含它們。

我的建議是:走緩,檢查什麼在每一步發生的事情,並彙報(編輯問題),當你有更好的想法可能是錯誤的...