嗯,我认为这个答案已经存在,但是有大量人发布代码。我无法找到它实际实现的位置。我正在使用代码块,我将文件名传递给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;
}
}
答案 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...
。