1

私はC++の初心者です.680x680の2次元配列を作成しました.そして、それをtxtファイルに書き込もうとしました.残念ながら、その次元に沿って2次元配列を定期的に書くことはできません. また、txt ファイルから 2 次元配列を読みたいと思っています。コードは以下のとおりです。

/*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);

よろしくお願いします...

4

1 に答える 1

0

今すぐこれを詳細に検討する時間はありません。「シリアル化」と「逆シリアル化」という言葉を使用して、周りを見回すことができます(googleまたはSO)。


後で:私は視覚的なことは何もしないので、構文に関連するものはすべて無視します。

  1. コンパイルしますか?
  2. もしそうなら、それはクラッシュすることなく実行されますか?
  3. もしそうなら、あなたは出力を直接見ましたか?それはあなたが期待するものを与えていますか?
  4. 入力解析にfscanfを使用するのは注意が必要です。空白文字が一致するように非常に注意する必要があります。ここを見て。最大の問題は、改行を書き込んでいるが、入力に改行を含めることができないことであるように思われます。

私のアドバイス:ゆっくりと進み、各ステップで何が起こっているかを確認し、何が間違っているのかがよくわかったら報告してください(質問を編集してください)...

于 2009-02-26T15:59:50.387 に答える