我能';t在C+中的头文件中的类内部使用ofstream对象+; 我用C++编写了一个头文件来将文件记录到文件中,但是当我尝试这样做时,会发生一个错误。
我尝试了ofstream、fstream,还尝试了将文件与对象声明分开打开。我试着去掉这个变量,只是把我想要的实际文件名放在那里(所以我没有用logging(filename),而是用logging(“filename.txt”))我能';t在C+中的头文件中的类内部使用ofstream对象+; 我用C++编写了一个头文件来将文件记录到文件中,但是当我尝试这样做时,会发生一个错误。,c++,fstream,C++,Fstream,我尝试了ofstream、fstream,还尝试了将文件与对象声明分开打开。我试着去掉这个变量,只是把我想要的实际文件名放在那里(所以我没有用logging(filename),而是用logging(“filename.txt”)) void writeLog(){ 使用名称空间std; 流日志(文件名); 如果(!日志记录){ cerr正如@drescherjm在评论中所说:您的编译器很旧,要求文件名为char*而不是std::string。在这种情况下,您需要将fileName替换为file
void writeLog(){
使用名称空间std;
流日志(文件名);
如果(!日志记录){
cerr正如@drescherjm在评论中所说:您的编译器很旧,要求文件名为char*
而不是std::string
。在这种情况下,您需要将fileName
替换为fileName.c_str()
看起来您的编译器很旧,要求文件名为const char*,而不是std::string。在这种情况下,您需要将文件名替换为文件名.c_str()
@drescherjm,好奇的是,为什么您在备注中而不是答案中这样说?(我的意思是答案更直观,并允许标记问题已解决)哦,谢谢。如果我更新我的编译器,它是否可以工作?是的,从2011年标准开始,这应该可以工作(c++11)。您可能只需要启用c++11。@drescherjm我从未理解为什么第一个版本与std:string不兼容
void writeLog(){
using namespace std;
ofstream logging(fileName);
if(!logging){
cerr << "Error opening log file " << fileName << ". Logs are not being recorded\n";
isError = true;
}