这里我展示了一段我的C++代码,它循环了一些k值,如果k = 0应该将输出发送到一个文件(outputk0.txt)
,如果k!= 0到另一个。outputnotk0.txt
)编译时我有在out
ofstream的文件范围的问题,任何人都知道如何解决这个问题C++:改变IF语句中的输出文件
for(int k = 0; k < number_of_l_steps; k++)
{
if(k == 0)
std::ofstream out("outputk0.txt", ios::out);
else
std::ofstream out("outputnotk0.txt", ios::out);
for(int i = 0; i < n_k; i++)
{
cout << i << endl;
double k = exp(log(kmin1) + i*(log(kmax) - log(kmin1))/(n_k-1.));
for(int j = 0; j < n_z; j++)
{
double z = zmin + j*(zmax - zmin)/(n_z-1.);
// cout << k << " " << z << endl;
out << i << " " << j << " " << cv.U(z,k) << endl;
//out << i << " " << j << " " << gsl_matrix_get(Gl,i,j) << endl;
}
}
out.close();
}
也许第一'的std :: ofstream的了;''之前声明if',然后'out.open(“outputk0.txt “,ios :: out)'和'out.open(”outputnotk0.txt“,ios :: out)'? – DimChtz
你会得到一个编译时错误,抱怨'out'是一个未声明的标识符。那是因为'out'的作用范围是'if condition'。 – Raindrop7
@ Raindrop7这正是OP通过声明“_我在编译时遇到'out'ofstream文件的范围有问题”。 –