C语言 运行一个程序,我将文件名传递给 Main



好吧,我假设这个答案就在那里,但人是不是有很多人发布代码。我找不到它实际实现的地方。我正在使用代码块,并且将文件名传递给main。但是当我单击"运行"时,没有传入的文件名。如何在代码块中传入文件名?我使用 cmd promt 还是什么?我想传入输入.txt但我无法弄清楚。现在为了阻止它崩溃,我只是让它默认为 input.txt。

nfile = fopen(argv[1], "r+");
    // Check for file open
    if (nfile == NULL) {
        nfile = fopen("input.txt", "r+"); 
        printf("FILE NAME: %s argvn", argv);
        if (nfile == NULL) {
            printf("Failed to open file. Must have file name (input.txt)n");
            return -1;
        }
    }
int main(int argc, char*argv[])

^ 这应该是函数头,要使用它,你必须使用命令提示符来传递参数。

例如:如果您使用 GCC 编译程序。然后使用gcc yourprogram.c

之后使用 ./a.out input.txt 运行代码

查看main过程的签名。它应该看起来像int main(int argc, char* argv[]).argc 参数保存参数的数量,包括程序的文件名。 argv 是一个以 null 结尾的字符串数组,其中包含参数。第二个(索引 1),如果存在,可能是您要查找的内容。你在那里得到什么?

看起来您已经在代码中使用这些变量...您是否收到它们的编译错误?

要将命令行参数插入到 CodeBlock 中,您需要从菜单中访问Project > Set programs' arguments...

最新更新