在 C 上保存文件

发布于 2024-11-05 05:08:32 字数 180 浏览 1 评论 0原文

我想在计算机上保存文件。我可以使用 fwrite 命令。

但我必须在使用 fwrite 命令保存时在 for 循环中枚举文件,例如 file01、file02、..。

所以我必须保存;例如十个文件(file01,fle02,file03....,file10...)

你能给我一个简单的示例代码吗?

I want to save files on computer.I can use fwrite commands.

But I have to enumarate files,like file01,file02, .. inside in the for cycle while saving using fwrite commands.

So I have to save ;for example ten files (file01,fle02,file03....,file10...)

Could you advise me a simple example code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

紙鸢 2024-11-12 05:08:32

在循环内,您需要

  1. 构建文件名
  2. 打开文件
  3. 写入数据
  4. 关闭文件

C99示例(snprintf()是“新”),省略了很多细节

for (j = 0; j < 10; j++) {
    snprintf(buf, sizeof buf, "file%02d.txt", j + 1);     /* 1. */
    handle = fopen(buf, "w");                             /* 2. */
    if (!handle) /* error */ exit(EXIT_FAILURE);          /* 2. */
    w = fwrite(data, 1, bytes, handle);                   /* 3. */
    if (w != bytes) /* check reason */;                   /* 3. */
    fclose(handle);                                       /* 4. */
}

Inside a loop you need to

  1. build the filaname
  2. open the file
  3. write data
  4. close the file

C99 example (snprintf() is "new"), with lots of details omitted

for (j = 0; j < 10; j++) {
    snprintf(buf, sizeof buf, "file%02d.txt", j + 1);     /* 1. */
    handle = fopen(buf, "w");                             /* 2. */
    if (!handle) /* error */ exit(EXIT_FAILURE);          /* 2. */
    w = fwrite(data, 1, bytes, handle);                   /* 3. */
    if (w != bytes) /* check reason */;                   /* 3. */
    fclose(handle);                                       /* 4. */
}
内心激荡 2024-11-12 05:08:32

您需要使用 fopen 逐个打开文件,如下所示:

char filename[128]; // (128-1) characters is the max filename length
FILE *file;

int i;
for (i = 0; i < 10; ++i) {
    snprintf(filename, 128, "file%02d", i);
    file = fopen(filename);

    // do stuff with file

    fclose(file);
}

You need to open the files one by one with fopen, something like this:

char filename[128]; // (128-1) characters is the max filename length
FILE *file;

int i;
for (i = 0; i < 10; ++i) {
    snprintf(filename, 128, "file%02d", i);
    file = fopen(filename);

    // do stuff with file

    fclose(file);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文