Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能';t在C+中的头文件中的类内部使用ofstream对象+; 我用C++编写了一个头文件来将文件记录到文件中,但是当我尝试这样做时,会发生一个错误。_C++_Fstream - Fatal编程技术网

我能';t在C+中的头文件中的类内部使用ofstream对象+; 我用C++编写了一个头文件来将文件记录到文件中,但是当我尝试这样做时,会发生一个错误。

我能';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

我尝试了ofstream、fstream,还尝试了将文件与对象声明分开打开。我试着去掉这个变量,只是把我想要的实际文件名放在那里(所以我没有用logging(filename),而是用logging(“filename.txt”))

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;
        }