我的第一篇文章:),我从 C 语言开始,作为进入编程领域的基本学习步骤。我正在使用以下代码从文本文件中读取字符串,使用该字符串名称创建目录并打开一个文件以在该创建的目录中写入。但是我无法在目录中创建文件,这是我的代码:

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

int main()
{
    char file_name[25], cwd[100];
    FILE *fp, *op;

    fp = fopen("myfile.txt", "r");

    if (fp == NULL)
    {
        perror("Error while opening the file.\n");
        exit(EXIT_FAILURE);
    }

    fgets(file_name, 25, fp);

    _mkdir(file_name);

       if (_getcwd(cwd,sizeof(cwd)) != 0)
    {
      fprintf(stdout, "Your dir name: %s\\%s\n", cwd,file_name);

        op = fopen("cwd\\file_name\\mynewfile.txt","w");
        fclose(op);
    }
    fclose(fp);
    return 0;
}

最佳答案

您需要的是在打开之前将文件名(带有路径)存储在 c 字符串中。你打开的是 cwd\file_name\mynewfile.txt 。我怀疑您的目录是否名为 cwd
样本可以是:

char file_path[150];
sprintf(file_path, "%s\\%s\\mynewfile.txt", cwd, file_name);
op = fopen(file_path,"w");

关于c - C 中的文件 I/O 管理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15402393/

10-13 06:59