2009-02-26 116 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.你最大的问题似乎是你正在写新行,但不允许输入包含它们。

我的建议是:走缓,检查什么在每一步发生的事情,并汇报(编辑问题),当你有更好的想法可能是错误的...