std::ofstream变量定义问题
std::ofstream variable definition problems
我的 ofstream 变量 outfile
有问题。我在全局定义它,然后尝试在函数内更改它:
ofstream outfile("C:\folder1\folder2\file1.file");
void a() {
ofstream outfile("C:\folder3\folder4\file2.file");
}
main(){
a();
outfile << "TEST";
}
这不起作用。如果我尝试删除第二个声明中的 ofstream
,则会出现错误。
注意:我的调试器坏了
This does not work. If I try to remove the ofstream
in the second declaration, I get errors.
当然,ofstream
没有这样的 operator()
重载,假设您一直在写
void a() {
outfile("C:\folder3\folder4\file2.file");
}
注意这里也没有定义赋值运算符,这样写
void a() {
outfile = ofstream("C:\folder3\folder4\file2.file");
}
也不能用
最接近的是
void a() {
outfile.close();
outfile.open("C:\folder3\folder4\file2.file");
}
真正的问题是恕我直言,为什么需要在全局范围内声明 outfile
。通常根本没有必要。
我的 ofstream 变量 outfile
有问题。我在全局定义它,然后尝试在函数内更改它:
ofstream outfile("C:\folder1\folder2\file1.file");
void a() {
ofstream outfile("C:\folder3\folder4\file2.file");
}
main(){
a();
outfile << "TEST";
}
这不起作用。如果我尝试删除第二个声明中的 ofstream
,则会出现错误。
注意:我的调试器坏了
This does not work. If I try to remove the
ofstream
in the second declaration, I get errors.
当然,ofstream
没有这样的 operator()
重载,假设您一直在写
void a() {
outfile("C:\folder3\folder4\file2.file");
}
注意这里也没有定义赋值运算符,这样写
void a() {
outfile = ofstream("C:\folder3\folder4\file2.file");
}
也不能用
最接近的是
void a() {
outfile.close();
outfile.open("C:\folder3\folder4\file2.file");
}
真正的问题是恕我直言,为什么需要在全局范围内声明 outfile
。通常根本没有必要。