【发布时间】:2019-09-09 10:49:32
【问题描述】:
我必须打开一些文件进行写入,它的名称包含波浪号 (~)。以下代码无法创建所需的文本文件。如果我用/home/oren 替换~,那么一切正常。
#include <fstream>
#include <string>
const std::string dirname = "/home/oren/GIT/";
// const std::string dirname = "~/GIT/";
const std::string filename = "someTextFile";
int main(int argc, char **argv)
{
std::ofstream log_file(dirname+filename+".txt");
log_file << "lorem ipsum";
log_file.close();
}
有没有办法(轻松)处理名称中带有~ 的文件?
【问题讨论】:
-
作为我写此评论时存在的两个答案的补充:根据路径的来源(用户输入?),程序可能应该知道波浪号扩展的其他变体,比如
~user指的是给定user的主目录。