我正在编写代码块版本10.05中编写C代码。
该计划是:
int main(int argc , char *argv[])
{
printf("Entered number is %s \n", argv[1]);
return 0;
}
然而,当我编译当前文件时,&然后运行程序,终端出现。但是,终端不等待命令行输入&它直接输出
<null>
请注意,在上面的程序中,我省略了处理零数量命令行参数的代码。 我如何提供命令行参数?
答案 0 :(得分:36)
使用code :: blocks,您可以在菜单中设置命令行参数:
Project > Set programs' arguments...
这会打开一个窗口,您可以在其中插入参数。
答案 1 :(得分:3)
如果您需要,可以在代码之前创建一个项目,然后单击Project - &gt;设置程序参数。
答案 2 :(得分:0)
argv
中的命令行参数是在程序执行时在命令行上传递给程序的参数。为了在程序执行期间获取用户输入,您需要使用更多代码,例如scanf
或fgets
。
如果您从IDE运行程序,应该有某种方式,例如项目属性,在运行时将参数传递给程序。对于CodeBlocks,请检查项目菜单: Project-&gt; Set Program Arguments 。
如果你可以在终端中运行程序,你可以自己传递参数,例如:
$ myProgram argument1
然后在您的代码中,argv[1]
将包含字符串:"argument1"
。
答案 3 :(得分:0)
代码块的项目-设置程序的自变量(然后在弹出对话框的下部文本框中输入自变量)应在程序启动时提供您键入的内容。 (CodeBlocks也可以在Ubuntu和Windows上运行。) 为了确保您的代码正在处理参数,您可以在Win下启动-CMD.EXE,导航至(e:cd \ homework \ projectname)您的项目目录,然后进入cd bin \ Debug。执行DIR,您将看到EXE文件。那是程序运行的一部分。在按ENTER之前,输入其名称,空格和一些自变量。查看您的代码是否正在处理args OK。 (确保main看起来像:int main(int argc,char * argv []) 然后在main()中有一条语句:cout << argv [1] << endl; 应该会在EXE文件名之后显示您键入的第一个单词。