gcc 以文本文件作为参数运行C程序不起作用

xtupzzrd  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(148)

我有一个简单的C语言程序“prog.c”:

#include<stdio.h>

int main(int argc, char *argv[]) {
    printf("Count: %d\n", argc);
    printf("Text: %s\n", argv[1]);

    return 0;
}

当我编译程序并以.txt文件作为参数运行时,程序根本无法识别此参数。
我编译:gcc prog.c,它创建一个“a.exe”文件。
然后,我运行.exe程序与.txt文件作为参数(尝试以下所有选项):
a < text.txt
a.exe < text.txt
输出始终为

Count: 1
Text: (null)

我在Win10上运行所有的东西,并使用MinGW进行编译。

plicqrtu

plicqrtu1#

在使用以下命令引用argv[1]之前,您需要检查是否已设置argv[1]

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Count: %d\n", argc);
    if(argc > 1) {
        printf("Text: %s\n", argv[1]);
    }
}

然后,您可以这样运行它:

./your_program argument
Count: 2
Text: argument

当你使用< test.txt时,文件test.txt被复制到程序的标准输入。你可以使用,例如,read()fread()来读取所述输入。

相关问题