所以有一天,我做了一个小程序来测试一下我在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上,它编译得很好,运行起来也没有任何问题,所以如果有人能帮助我,给我指出正确的方向,我将感激不尽。
ofstream writer();
这是错的。
你不小心声明了一个函数。
移除 ()
.
(你一定是在Visual Studio下运行了不同的代码。)