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

时间:2014-11-24 19:48:58

标签: c parameter-passing command-line-arguments codeblocks

嗯,我认为这个答案已经存在,但是有大量人发布代码。我无法找到它实际实现的位置。我正在使用代码块,我将文件名传递给main。但是当我单击Run时,没有传入的文件名。如何在Codeblocks中传入文件名?我使用cmd promt还是什么?我想传入input.txt但我无法弄明白。现在要阻止它崩溃,我只是将它默认为input.txt。

nfile = fopen(argv[1], "r+");

    // Check for file open
    if (nfile == NULL) {
        nfile = fopen("input.txt", "r+"); 

        printf("FILE NAME: %s argv\n", argv);

        if (nfile == NULL) {
            printf("Failed to open file. Must have file name (input.txt)\n");
            return -1;
        }
    }

2 个答案:

答案 0 :(得分:1)

int main(int argc, char*argv[])

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

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

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

答案 1 :(得分:0)

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

看起来你已经在你的代码中使用了那些变量......你是否从它们那里得到了编译错误?

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