使用C将两个矩阵写入.dat文件

时间:2016-09-19 13:25:27

标签: c

我正在编写一些代码,这些代码将使用C语言并将它们放在.dat文件中。

我在NetBeans中写作IDE。 Netbeans说代码很适合构建,但是当它运行时它失败了,甚至没有告诉我原因。

我正在使用的IDE可能有问题吗?

以下是代码部分(是的,我在源文件中包含了stdio.h和stdlib.h)。

   //this is supposed to make a pair of example matrices.
   double A[10][10];
   double B[10][10];

   int i , j;

   for (i=0; i < 10 ; i++)
   {
       for(i=0; i < 10 ; i++)
       {
           A[i][j]= 1.0 ;
           B[i][j]= 1.0 ;
       }
   }

   //this is supposed to make the .dat file
   FILE *fp2;


   fp2 = fopen("MatricesFile.dat","w");

   if(fp2 == NULL)
   {
       printf("Error in opening file");
       return 1;
   }

   else
   {
      for(int i = 0 ; i < 10 ; i++)
      {
         for(int j = 0 ; j < 10 ; j++)
         {
            fwrite(&A[i][j], sizeof(A[i][j]), 1, fp2);  
            fwrite(&B[i][j], sizeof(B[i][j]), 1, fp2);
         }    
      }
   }

   fclose(fp2);

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

代码中有两个明显的问题。

嵌套循环时,使用不同的变量控制内循环和外循环。至少有一个循环使用i来控制内循环和外循环。

使用fwrite()fread()时,请以二进制模式打开文件(例如,要打开以进行写入,请使用模式"wb")。否则,在阅读时不一定能正确恢复写出的数据。

并且在遇到问题时不要责备你的IDE或编译器。 IDE和编译器确实存在错误,但是您遇到的绝大多数问题都是由于编码中的缺陷造成的。就像这里的情况一样。