C++ 为什么我的输出文件与输入文件不同?
我正在读取文本文件并写入文本文件,但输出文件与输入文件不匹配 原始TINN1文件是由Fortran程序作为文本文件编写的。使用混合编程,TANT/C++ + I能够初始化Fortran中的数组,并将其传递给C++来编写输出文件,该文件是输入文件的镜像。然而,在C++中进行读写是一个挑战。我能够使用谷歌提供的其他示例生成代码C++ 为什么我的输出文件与输入文件不同?,c++,C++,我正在读取文本文件并写入文本文件,但输出文件与输入文件不匹配 原始TINN1文件是由Fortran程序作为文本文件编写的。使用混合编程,TANT/C++ + I能够初始化Fortran中的数组,并将其传递给C++来编写输出文件,该文件是输入文件的镜像。然而,在C++中进行读写是一个挑战。我能够使用谷歌提供的其他示例生成代码 #include <iostream> #include<sstream> #include<fstream>
#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](这显然不是你的意图!)此代码迫切需要适当的缩进,以便我们能够更好地遵循结构和您的意图。根据您的建议更新的代码,感谢您指出。:)此代码迫切需要适当的缩进,以便我们能够更好地遵循结构和您的意图。根据您的建议更新的代码,感谢您指出。:)