28

我正在代码块版本 10.05 中编写 C 代码。

该程序是:

int main(int argc , char *argv[])
{
    printf("Entered number is %s \n", argv[1]);
    return 0;
}

但是,当我编译当前文件,然后运行程序时,会出现一个终端。但是,终端不等待命令行输入而是直接输出

<null>

请注意,在上面的程序中,我省略了处理零个命令行参数的代码。我如何提供命令行参数?

4

4 回答 4

46

使用 code::blocks 您可以在菜单中设置命令行参数,如下所示:

Project > Set programs' arguments...

这将打开一个窗口,您可以在其中插入参数。

于 2012-08-09T17:19:15.220 回答
5

如果需要,您需要在代码之前创建一个项目,您可以单击 Project -> Set Program Arguments。

于 2013-10-06T19:55:53.690 回答
1

代码块的项目 - 设置程序的参数(然后在弹出对话框的下部文本框中键入参数)应该在程序启动时提供您键入的内容。(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文件。

于 2018-07-21T19:03:23.277 回答
0

中的命令行参数argv是程序执行时在命令行上传递给程序的参数。为了在程序执行期间接受用户输入,您需要使用更多代码,例如scanffgets.

如果您从 IDE 运行程序,应该有一些方法,例如项目属性,在您运行程序时将参数传递给程序。对于 CodeBlocks,检查项目菜单:Project->Set Program Arguments

如果您可以在终端中运行程序,您可以自己传递参数,例如:

$ myProgram argument1

然后在您的代码中,argv[1]将包含字符串:"argument1"

于 2012-08-09T17:13:05.010 回答