C ++写入路径名中包含不需要的空字符的文件

C++ Writing to file with an unwanted null character inside the pathname

我陷入了这个单一的问题: 我必须在类似于 "C:....[=20=]-myfolder\subfolder\file.txt" 的路径上写入 txt 文件 其中“0-myfolder”是文件夹的完整名称

将它写成带有双反斜杠的普通路径是行不通的,因为在序列中读取了不需要的空字符。我试图写入同一目录中的另一个文件夹,该文件夹的名称不以 0 开头,并且可以正常工作,但不幸的是,由于其他原因我无法重命名该文件夹。

有没有办法强制 C++ 不读取空字符?

使用原始字符串文字可能是一个很好的解决方案:

#include <iostream>

int main(void)
{
   std::cout << R"(C:[=10=]-myfolder\subfolder\file.txt)" << std::endl;
   return 0;
}

自动处理转义产生干净的输出 C:[=18=]-myfolder\subfolder\file.txt

https://en.cppreference.com/w/cpp/language/string_literal