1

我是 C++ 新手。我组成了 680x680 的二维数组。我试图将它写入 txt 文件。不幸的是,我不能定期沿着它的维度编写二维数组。我也想从 txt 文件中读取二维数组。我的代码在下面。你能帮帮我吗?

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

现在没有时间详细研究这个,您可能会使用“序列化”和“反序列化”这两个词环顾四周(谷歌或 SO)。


后来:我不做任何视觉上的事情,所以我将忽略任何与语法相关的事情。

  1. 它编译吗?
  2. 如果是这样,它运行时不会崩溃吗?
  3. 如果是这样,您是否直接查看了输出?它给了你期望的东西吗?
  4. 使用 fscanf 进行输入解析很棘手。您需要非常小心地让空白字符匹配。看这里。您最大的问题似乎是您正在编写换行符,但不允许输入包含它们。

我的建议:慢慢来,检查每个步骤发生的情况,并在您更好地了解可能出现的问题时报告(编辑问题)......

于 2009-02-26T15:59:50.387 回答