我想获取使用ofstream创建的文件的目录。 我编写的代码类似于
std::ofstream txt("sample.txt", std::ios::binary);
然后我写了一些东西到txt文件,然后调用txt.close()来关闭ofstream。在编写时,我想获取sample.txt文件的位置并将其写入sample.txt。 例如,目录路径将如下所示:
/home/usr/Downloads/sample.txt
我想将整个内容保存为字符串,以便将其写入sample.txt文件中。有人可以帮忙吗? 我正在使用linux来编写代码,一个通用的方法就可以了(在windows,linux,mac等上工作)。
答案 0 :(得分:4)
您应该查看Boost.Filesystem的便携式路径处理。 C ++没有太多的路径,因为您可能在没有文件系统的平台上运行。但是,您可以尝试使用getcwd获取内容并在输出和文件名之间附加“/”。 getcwd不是C的一部分,但它在Windows上可用作_getcwd - 符合POSIX标准的系统将具有规范getcwd
。这应该可以工作(但是我很确定有一些例子,如果从UNC路径运行,它就不会出现这种情况。)
答案 1 :(得分:0)
在窗户上,我可以帮你一臂之力。获取工作目录 http://msdn.microsoft.com/en-us/library/sf98bd4y%28v=vs.80%29.aspx
#include <direct.h>
char cCurrentPath[MAX_PATH];
_getcwd(cCurrentPath,sizeof(cCurrentPath));
听起来就像你在寻找的东西。