【问题标题】:How to interact in terminal with the C program I just wrote如何在终端中与我刚刚编写的 C 程序进行交互
【发布时间】:2017-01-18 04:03:37
【问题描述】:

我刚刚写了一个 C 程序,我想知道如何在终端上与它进行交互。我的程序由一个无效的函数组成,我在 main 中包含的所有内容如下:

int main(int argc, const char * argv[]) {

    int arg;
    for (arg = 0; arg < argc; ++arg)
    {
        printf("Arg %d is %s\n", arg, argv[arg]);
    }

    return 0;
}

我的函数标题是void conv(int decimal, int y);

那么谁能给我一些简单的指导,告诉我如何在我的 Mac 上的终端上进行一些转换?我是 C 新手,非常感谢您的帮助。

【问题讨论】:

  • conv() 的代码在哪里?它有什么作用?你怎么称呼它?
  • 假设您将程序保存在一个名为printargs.c 的文件中,您首先使用命令行cc -o printargs printargs.c 对其进行编译。然后你可以使用命令行./printargs somearg someotherarg yetanotherarg运行你的程序。
  • 你当前的代码可能被编译成一个程序arglist,在终端,你可以以./arglist arg1 'the second' " this is the third. "运行它,你会得到4行输出(一个程序名和3个参数)。如何将conv() 集成到您的程序中取决于您自己。有一些标准库函数可以将字符串转换为数字——例如,&lt;stdlib.h&gt; 中的 strtol() 及其亲属。

标签: c macos terminal variadic-functions


【解决方案1】:

假设你的程序文件名为your_program.c,然后输入编译命令:

gcc your_program.c -o your_program

进入终端并输入。然后执行程序:

./your_program arg1 arg2...

确切地说,您的具体问题是什么?希望我的回答对你有所帮助。

【讨论】:

  • 我的具体问题是“给定我拥有的函数(名为 conv,返回类型为 void),它接受 2 个整数参数,我应该在我的 main 中键入什么以便函数使用 argv [ 1] 和 argv[2]"。例如,我将输入 ./main 8 2 并希望通过 conv 函数运行 8 和 2。
  • argv[1] 和 argv[2] 是字符串,所以你必须使用 atoi() 或 strtol() 将 argv[1] 和 argv[2] 转换为整数,然后将它们传递给你的 conv() 函数。
猜你喜欢
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2014-06-10
  • 2012-04-07
  • 1970-01-01
相关资源
最近更新 更多