3

我想获取我使用 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 等上工作)。

4

2 回答 2

4

您应该查看Boost.Filesystem以进行可移植路径处理。C++ 没有太多的路径,因为您可能在没有文件系统的平台上运行。但是,您可以尝试使用getcwd获取某些内容,并在输出和文件名之间附加“/”。getcwd 不是 C 的一部分,但它在 Windows 上以_getcwd的形式提供——符合 POSIX 的系统将具有规范的getcwd. 这应该可以工作(但我很确定在某些极端情况下它不会,例如,如果从 UNC 路径运行。)

于 2011-03-24T16:49:40.570 回答
0

在 windows 上,我可以帮你。获取工作目录 http://msdn.microsoft.com/en-us/library/sf98bd4y%28v=vs.80%29.aspx

 #include <direct.h>

 char cCurrentPath[MAX_PATH];
_getcwd(cCurrentPath,sizeof(cCurrentPath));

听起来像你在找什么。

OH OH OH 看这里 什么是跨平台获取当前目录的方法?

于 2011-03-24T16:52:13.933 回答