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