【问题标题】:std::ofstream variable definition problemsstd::ofstream 变量定义问题
【发布时间】:2016-03-08 17:59:37
【问题描述】:

我的 ofstream 变量 outfile 有问题。我全局定义它,然后尝试在函数中更改它:

ofstream outfile("C:\\folder1\\folder2\\file1.file");

void a() {
    ofstream outfile("C:\\folder3\\folder4\\file2.file");
}

main(){
    a();
    outfile << "TEST";
}

这不起作用。如果我尝试在第二个声明中删除 ofstream,则会出现错误。

注意:我的调试器坏了

【问题讨论】:

  • 函数中的ofstream outfile是一个局部变量。

标签: c++ function variables global ofstream


【解决方案1】:

这不起作用。如果我尝试删除第二个声明中的 ofstream,则会出现错误。

当然,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。通常根本不需要。

【讨论】:

  • 不涉及operator(),只有构造函数的参数。
  • @Quentin 重新引用:“如果我尝试删除 ofstream
  • @Quentin 我猜“remove the ofstream”被理解为“将行改为outfile("C:\\folder3\\folder4\\file2.file");
  • outfile.close(); outfile.open("lalala"); 工作。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2017-09-22
  • 2019-09-21
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多