c ++使用字符串缓冲区文件名更改ofstream的目录

时间:2016-12-16 13:52:03

标签: c++ directory ofstream

我有这行代码

    std::ofstream output(p_strFilename.c_str());

其中p_strFilename是从函数参数

定义的
    foo(const std::string &p_strFilename)

将一堆文件保存在当前工作目录中。但是我想在该目录中输入一个步骤并将文件保存在其中。我试过了

    std::ofstream output("folder1\\"+p_strFilename.c_str())

这是给我的

    error: invalid operands of types ‘const char [9]’ and ‘const char*’ to binary ‘operator+’

我猜这个目录是9个字符而不是字符串。

第一个问题:这是输入目录的正确方法吗? (双反斜杠并从CWD开始不形成主目录)

第二个问题:如何解决编译错误?

2 个答案:

答案 0 :(得分:0)

我认为只有在连接后才需要转换为c_string:

std::ofstream output(("folder1/"+p_strFilename).c_str())

希望它有所帮助! :)

答案 1 :(得分:0)

请勿使用func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { centralManager.connect(myPeriperal, options: nil) }

.c_str()不适用于两个operator+,您必须使用char* std::string添加此类字符串。

operator+
  

(One of the two strings being concatenated must be a std::string object)