C++ 为什么我的输出文件与输入文件不同?

C++ 为什么我的输出文件与输入文件不同?,c++,C++,我正在读取文本文件并写入文本文件,但输出文件与输入文件不匹配 原始TINN1文件是由Fortran程序作为文本文件编写的。使用混合编程,TANT/C++ + I能够初始化Fortran中的数组,并将其传递给C++来编写输出文件,该文件是输入文件的镜像。然而,在C++中进行读写是一个挑战。我能够使用谷歌提供的其他示例生成代码 #include <iostream> #include<sstream> #include<fstream>

我正在读取文本文件并写入文本文件,但输出文件与输入文件不匹配

原始TINN1文件是由Fortran程序作为文本文件编写的。使用混合编程,TANT/C++ + I能够初始化Fortran中的数组,并将其传递给C++来编写输出文件,该文件是输入文件的镜像。然而,在C++中进行读写是一个挑战。我能够使用谷歌提供的其他示例生成代码

    #include <iostream>
    #include<sstream>
    #include<fstream>
    #include<iomanip>
    #include<cstdlib>

    main()
    {

    double ta1[22];
    double tv1[22];
    double t1[22][13][22];
    ifstream in;    // Create an input file stream.
    ofstream out;    // Create an input file stream.
    int ik;

    in.open("TINN1");  // Use it to read from a file named data.txt.
    out.open("TINN1.txt");  // Use it to read from a file named data.txt.

    for (int k=1; k<=21; k++){
      in >> ik , ta1[k] , tv1[k];
      out << ik << " " << ta1[k] << " " << tv1[k] << endl;
      for (int i=1; i<=21; i++){
        if (i<=15) {
          for (int j=1; j<=12; j++) {
            in >> t1[k][j][i];
            out << t1[k][j][i] << " " ;
            if (j % 6 == 0) out << endl;
          }
        }
        else{
          //         for (int =; <=; ++){do 2 j=1,12
          //         t(i,j,k)=32.0
          //   2     continue
        }
      }
    }

    return 0;
    }


    input file has the following:
    1 36.20  0.00
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.62 36.62 36.62 36.62 36.62 36.62
    36.62 36.62 36.62 36.62 36.62 36.62
    36.55 36.55 36.55 36.55 36.55 36.55
    36.55 36.55 36.55 36.55 36.55 36.55
    36.14 36.14 36.14 36.14 36.14 36.14
    36.14 36.14 36.14 36.14 36.14 36.14
    33.64 33.64 33.64 33.64 33.64 33.64
    33.64 33.64 33.64 33.64 33.64 33.64
    32.46 32.46 32.46 32.46 32.46 32.46
    32.46 32.46 32.46 32.46 32.46 32.46
    32.26 32.26 32.26 32.26 32.26 32.26
    32.26 32.26 32.26 32.26 32.26 32.26
    32.06 32.06 32.06 32.06 32.06 32.06
    32.06 32.06 32.06 32.06 32.06 32.06
    31.97 31.97 31.97 31.97 31.97 31.97
    31.97 31.97 31.97 31.97 31.97 31.97
    31.86 31.86 31.86 31.86 31.86 31.86
    31.86 31.86 31.86 31.86 31.86 31.86

    Output file has the following:
    1 nan 4.89317e+018
    36.2 0 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.63 36.63 36.63 36.63
    36.63 36.63 36.62 36.62 36.62 36.62
    36.62 36.62 36.62 36.62 36.62 36.62
    36.62 36.62 36.55 36.55 36.55 36.55
    36.55 36.55 36.55 36.55 36.55 36.55
    36.55 36.55 36.14 36.14 36.14 36.14 
    36.14 36.14 36.14 36.14 36.14 36.14 
    36.14 36.14 33.64 33.64 33.64 33.64 
    33.64 33.64 33.64 33.64 33.64 33.64 
    33.64 33.64 32.46 32.46 32.46 32.46 
    32.46 32.46 32.46 32.46 32.46 32.46 
    32.46 32.46 32.26 32.26 32.26 32.26 
    32.26 32.26 32.26 32.26 32.26 32.26 
    32.26 32.26 32.06 32.06 32.06 32.06 
    32.06 32.06 32.06 32.06 32.06 32.06 
    32.06 32.06 31.97 31.97 31.97 31.97 
    31.97 31.97 31.97 31.97 31.97 31.97 
    31.97 31.97 31.86 31.86 31.86 31.86 
    31.86 31.86 31.86 31.86 31.86 31.86 

    The two files should be the same
#包括
#包括
#包括
#包括
#包括
main()
{
双ta1[22];
双tv1[22];
双t1[22][13][22];
ifstream in;//创建一个输入文件流。
ofstream out;//创建一个输入文件流。
int-ik;
in.open(“TINN1”);//使用它读取名为data.txt的文件。
out.open(“TINN1.txt”);//使用它读取名为data.txt的文件。
对于(intk=1;k>ik,ta1[k],tv1[k];
这是什么

应该是:

in >> ik >> ta1[k] >> tv1[k];
这:

应该是:

in >> ik >> ta1[k] >> tv1[k];

这很可怕,编译器没有警告我有错误。我是fortran本地程序员,所以使用“,”而不是“>>”,谢谢你给我指出了这一点。:)逗号运算符在这里是有效的语法,但在这种情况下,它基本上说:只要读入ik,不要担心ta1[k]或tv1[k](这显然不是你的意图!)这很可怕,编译器没有警告我有错误。我是fortran本地程序员,所以使用“,”而不是“>>”,谢谢你给我指出了这一点。:)逗号运算符在这里是有效的语法,但在这种情况下,它基本上说:只要读入ik,不要担心ta1[k]或tv1[k](这显然不是你的意图!)此代码迫切需要适当的缩进,以便我们能够更好地遵循结构和您的意图。根据您的建议更新的代码,感谢您指出。:)此代码迫切需要适当的缩进,以便我们能够更好地遵循结构和您的意图。根据您的建议更新的代码,感谢您指出。:)