You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言中创建以用户输入为文件名的txt文件?

C语言实现用户输入作为文件名创建.txt文件的方案

你最初的写法核心问题有两个:

  1. fopen 不支持直接解析格式化占位符,需要先将用户输入和.txt后缀拼接为完整的文件名字符串,再传入fopen
  2. 打开模式r为只读模式,仅能打开已存在的文件,要创建新文件需要使用写相关的模式

具体实现步骤

  • 第一步:定义缓冲区存储用户输入的文件名前缀,以及拼接后的完整文件名
  • 第二步:获取用户输入的文件名内容
  • 第三步:使用snprintf格式化拼接得到带.txt后缀的完整文件名,推荐优先使用snprintf,可以避免用户输入过长导致的缓冲区溢出风险
  • 第四步:使用写模式调用fopen创建文件,做好空指针判断处理异常
  • 第五步:完成文件操作后关闭文件指针

可运行代码示例

#include <stdio.h>

int main() {
    char inputName[100];
    char fullFileName[110]; // 预留出.txt后缀的存储空间

    // 读取用户输入的文件名
    printf("请输入要创建的文件名(无需加后缀):");
    scanf("%99s", inputName); // 限制输入长度避免溢出

    // 拼接得到完整的.txt文件名
    snprintf(fullFileName, sizeof(fullFileName), "%s.txt", inputName);

    // w模式:文件不存在则创建,存在则清空原有内容
    FILE* fPointer = fopen(fullFileName, "w");
    if (fPointer == NULL) {
        perror("文件创建失败");
        return 1;
    }

    // 可在此处添加向文件写入内容的逻辑
    fputs("文件创建成功的测试内容", fPointer);

    fclose(fPointer);
    printf("文件 %s 创建完成\n", fullFileName);
    return 0;
}

常用打开模式说明

  • w:创建新文件写入,同名已有文件会被清空
  • wx:创建新文件写入,同名文件已存在时直接返回创建失败,避免覆盖
  • w+:创建新文件支持读写,同名已有文件会被清空

内容的提问来源于stack exchange,提问作者Hooopla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:48:01