c++ - C++中使用字符串指定文件路径(将文件存放在文件夹中)

标签 c++ directory fopen filepath

我正在生成数百个输出文件,并希望将它们存储在工作目录中名为 OUT 的文件夹中,而不是工作目录本身。每个文件都是根据当前迭代命名的。 (out1.txt、out2.txt 等)。我已经查看文档很长时间了,尝试了不同的方法但没有成功。这是代码。 (它在一个循环中,其中 k 是迭代次数。

char outname[50];
char filepath[30];
char iter_str[10];
sprintf(iter_str,"%d",k)
strcpy(outname,"out");
strcat(outname,iter_str);
strcat(outname,".txt");
strcpy(filepath,"..\\OUT\\");
strcat(filepath,outname);
file = fopen(filepath,"w");

它不是进入“OUT”文件夹,而是进入工作目录并这样命名:

..\OUT\out1.txt
..\OUT\out2.txt
..\OUT\out3.txt
etc

如有任何建议,我们将不胜感激!

我现在意识到在 unix 上我应该使用“/”而不是“\”。我已经这样做了并且遇到了段错误。使用“//”时也会出现段错误。

最佳答案

如果您使用 Boost Filesystem Library ,那么您就不必担心在组合子路径时是否必须使用 \/ 。您可以使用运算符 //= 来组合子路径。

using boost::filesystem::path;

path pathname("out");
pathname /= "abc"; //combine
pathname /= "xyz"; //combine
pathname /= "file.txt";   //combine

如果是Windows,那么pathname会变成out\abc\xyz\file.txt

如果是Linux,那么pathname会变成out/abc/xyz/file.txt

关于c++ - C++中使用字符串指定文件路径(将文件存放在文件夹中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11002821/

相关文章:

c++ - Socket.IO 客户端 std::bind - 错误 C2338:元组索引越界

c++ - 跨平台 C++ 目录管理

MATLAB - 从目录中读取文件?

c++ - 在 AVX 内在函数 vec 中填充常量 float

c++ - 如何创建不可复制元素的容器

具有特殊情况的 Python 规范化路径名

c - 如何正确地将行附加到现有文件

php - 我是使用 fopen 还是 curl 加载给定 PHP 中的 URL 的 XML 文件

c - 如何使用fopen在当前目录的文件夹内写入文件

c++ - CustomDialogProc 必须是静态的吗? WinAPI