运行一个程序,我将文件名传递给 Main
Posted
技术标签:
【中文标题】运行一个程序,我将文件名传递给 Main【英文标题】:Running a program where I pass the filename into Main 【发布时间】:2015-01-22 15:28:03 【问题描述】:好吧,我假设这个答案就在那里,但是人们是否有大量的人发布代码。我找不到它实际实施的地方。我正在使用代码块并将文件名传递给 main.但是当我单击运行时,没有传入文件名。如何在 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;
【问题讨论】:
How to take command line argument in Codeblock 10.05?的可能重复 【参考方案1】:查看main
程序的签名。它应该看起来像int main(int argc, char* argv[])
。 argc
参数包含参数的数量,包括程序的文件名。 argv
是一个包含参数的以 null 结尾的字符串数组。第二个(索引 1)(如果存在)可能就是您要查找的内容。你去那里做什么?
看起来您已经在代码中使用了这些变量...您是否收到了编译错误?
要将命令行参数插入 CodeBlocks,Project > Set programs' arguments...
是您需要从菜单中访问的内容。
【讨论】:
不,他们很好。我明白了,我只是不知道如何在单击运行时将字符串“input.txt”发送到 main。 哦。如果您单击“运行”,您可能会从 IDE 调用它。查看您的项目设置并查找命令行参数属性。您使用的是哪个 IDE? 没关系。你说的是代码块。编辑答案。 啊,是的,我什至在发布之前就尝试过这个。当我单击它时,甚至没有任何反应。什么都没有打开,什么都没有改变。我的安装一定有问题。 感谢您的帮助【参考方案2】:int main(int argc, char*argv[])
^ 这应该是函数头,要使用它,你必须使用命令提示符来传递参数。
例如:如果您使用 gcc 编译程序。
然后使用gcc yourprogram.c
之后使用./a.out input.txt
运行代码
【讨论】:
感谢您的帮助。我还是想不通。无论如何,它似乎有效吗?如果将文件名传递给 main,这段代码会起作用吗?以上是关于运行一个程序,我将文件名传递给 Main的主要内容,如果未能解决你的问题,请参考以下文章