我有此线,其中p_strFilename
从被保存一堆文件中的一个函数参数C++改变的ofstream的目录用一个字符串缓冲区文件名
foo(const std::string &p_strFilename)
定义的代码
std::ofstream output(p_strFilename.c_str());
当前工作目录。不过,我想在该目录内输入一个步骤并将文件保存在里面。我试图
std::ofstream output("folder1\\"+p_strFilename.c_str())
这是给我
error: invalid operands of types ‘const char [9]’ and ‘const char*’ to binary ‘operator+’
我的猜测是读取目录9个字符,而不是作为一个字符串。
第一个问题:是不是要输入正确的方式的目录? (双反斜线和从CWD开始没有形成主目录)
第二个问题:我怎样才能解决我的编译错误?
@RawN它应该如果: 1. p_strFilename是类型的std :: string和 2.输出()取 “常量字符*” 作为参数的。 为什么你认为它不会编译? – Brutus
@RawN如果p_strFilename的类型是“const char *”,那么 p_strFilename.c_str() 是如何工作的?我认为c_str()是std :: string类型的一种方法... – Brutus
尽管这样做删除了我的编译错误,但现在发生的情况是这些文件仍然保存在名为“folder1 \ file1”的cwd中。 txt“,”folder1 \ file2.txt“等。我该如何解决这个问题 –