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

如何将文本文件作为命令行参数传入并读取其中的参数

实现方案
  • 核心改动只需要把原来从标准输入读数据的逻辑,替换成从命令行参数指定的文件流读取即可,原有读取3个值的逻辑不需要调整。

C语言实现示例

原有基于重定向的代码逻辑示例

#include <stdio.h>

int main() {
    int int_val;
    char str1[128], str2[128];
    // 从标准输入读取数据
    scanf("%d %s %s", &int_val, str1, str2);
    // 后续业务逻辑
    return 0;
}

修改后支持命令行传文件的代码

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

int main(int argc, char* argv[]) {
    // 校验参数数量
    if (argc != 2) {
        printf("用法: %s 输入文件路径\n", argv[0]);
        return 1;
    }
    // 打开传入的文件
    FILE* fp = fopen(argv[1], "r");
    if (fp == NULL) {
        perror("无法打开指定文件");
        return 1;
    }

    int int_val;
    char str1[128], str2[128];
    // 从文件流读取数据,和原有scanf逻辑完全一致
    fscanf(fp, "%d %s %s", &int_val, str1, str2);

    // 后续业务逻辑不需要修改
    printf("读取结果: 整数=%d, 字符串1=%s, 字符串2=%s\n", int_val, str1, str2);

    fclose(fp);
    return 0;
}

运行方式

编译完成后直接执行 ./myprog text.txt 即可实现预期的调用效果,不需要再加输入重定向符。

如果你用的是其他编程语言,逻辑通用:先取命令行第一个参数作为文件名,打开文件后从文件对象读取内容即可,原有读取内容的逻辑几乎不需要调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:45:04