a87949 发表于 2021-6-18 09:07:59

file_system_创建文件_请教

版上的大大你们好

使用C语言

请教一下
我要创建100个文件
每次执行指创建一个
档案名称依照流水号
1~100
例如像这样

file_001.txt
file_002.txt
....
file_100.txt

我目前可以创建第一个
       
但是无法创建第二个

使用的函示库 stdio.h

这个问题我头痛了好段时间了

请大神们指导小弟......

yuxijian2020 发表于 2021-6-18 09:08:00

#include <stdio.h>
#include <stdlib.h>                //malloc
#include <string.h>                //memset

#define MAX_FILE_SIZE        100

//EXIT_FAILURE 和 EXIT_SUCCESS 是定义于 stdlib 中的
//EXIT_FAILURE = 1 | EXIT_SUCCESS = 0

int CreateTxtFile(char* name)
{
        FILE* file = NULL;
        fopen_s(&file, name, "w+");
        if (file == NULL)
                return EXIT_FAILURE;        //创建失败

        fclose(file);
        return EXIT_SUCCESS;
}

int CreateTxtFileByTimes(int time)
{
        char* filename = (char*)malloc(MAX_FILE_SIZE);
        if (filename == NULL)
                return EXIT_FAILURE;

        for (int i = 0; i < time; ++i)
        {
                memset(filename, 0, MAX_FILE_SIZE);
                sprintf_s(filename, MAX_FILE_SIZE, "file_%03d.txt", i + 1);
                if (CreateTxtFile(filename) == EXIT_FAILURE)
                {
                        free(filename);
                        return EXIT_FAILURE;
                }
        }

        free(filename);
        return EXIT_SUCCESS;
}

int main()
{
        CreateTxtFileByTimes(100);

        return 0;
}

a87949 发表于 2021-6-18 09:40:00

yuxijian2020 发表于 2021-6-18 09:35


感谢大神

人造人 发表于 2021-6-18 09:59:41

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    system("rm -r temp");
    system("mkdir temp");
    char command;
    for(size_t i = 1; i <= 100; ++i) {
      snprintf(command, 64, "echo 'count: %lu' > temp/file_%.3lu.txt", i, i);
      system(command);
    }
    return 0;
}

yuxijian2020 发表于 2021-6-18 13:04:08

人造人 发表于 2021-6-18 09:59


好家伙,我直呼好家伙{:10_258:}

人造人 发表于 2021-6-18 13:46:06

yuxijian2020 发表于 2021-6-18 13:04
好家伙,我直呼好家伙

^_^
页: [1]
查看完整版本: file_system_创建文件_请教