G++编译器:无法写入[重复]文件。

问题描述 投票:0回答:1

所以有一天,我做了一个小程序来测试一下我在Visual Studio 2019上做的一个更大的程序,这是什么样子的。

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    string path;
    cout << "Enter path and filename: ";
    cin >> path;
    ofstream writer();
    writer.open(path);
    writer << "hi\n";
    writer.close();
    return 0;
}

但最近我换到了Ubuntu上测试我的程序,但g++向我扔了这个。

error: request for member ‘open’ in ‘writer’, which is of non-class type ‘std::ofstream() {aka std::basic_ofstream<char>()}’ writer.open(path);

error: invalid operands of types ‘std::ofstream() {aka std::basic_ofstream<char>()}’ and ‘const char [3]’ to binary ‘operator<<’ writer << "hi";

error: request for member ‘close’ in ‘writer’, which is of non-class type ‘std::ofstream() {aka std::basic_ofstream<char>()}’ writer.close();

我真的不明白是什么问题,因为在Visual Studio上,它编译得很好,运行起来也没有任何问题,所以如果有人能帮助我,给我指出正确的方向,我将感激不尽。

c++ linux g++ ofstream
1个回答
2
投票
ofstream writer();

这是错的。

你不小心声明了一个函数。

移除 ().

(你一定是在Visual Studio下运行了不同的代码。)

© www.soinside.com 2019 - 2024. All rights reserved.