如何在C中使用main方法中的参数

时间:2013-04-30 17:12:26

标签: c

我正在尝试在C中运行main方法,但遇到了麻烦。这就是我所拥有的

int main(int argc, char *argv[])
{
    if(argc == 0)
        return 0;
    printf("%s \n", argv[0]);
    main(--argc,++argv);
}

在命令中我写这个,./main玫瑰是红色的!

但它没有运行,我相信它会在屏幕上打印出来

[R

0

取值

ë

取值

[R

ë

[R

ë

d

<!/ P>

我说错了吗?

3 个答案:

答案 0 :(得分:4)

您看到的输出对我来说似乎是正确的。

所以,让我们尝试运行你的代码。

[12:21pm][wlynch@watermelon /tmp] ./foo 
./foo 
[12:21pm][wlynch@watermelon /tmp] ./foo roses are red
./foo 
roses 
are 
red 
[12:21pm][wlynch@watermelon /tmp] ./foo "roses are red"
./foo 
roses are red 

答案 1 :(得分:1)

argv [0]将保存程序名称,argv [1]将保存玫瑰等。要打印字符串,我建议您使用类似的东西:

#include <stdio.h>

int main(int argc, char *argv[])
{
  int i;
  for (i = 1; i < argc; i++)
    printf("%s \n", argv[i]);
  return 0;
}

答案 2 :(得分:-3)

注意:您的函数不返回任何值。 Main应该无条件地返回int:

int main(int argc, char *argv[])
{
    if(!argc)
        return 0;
    printf("%s\n", argv[0]);
    return main(--argc,++argv);
 /* ^^^^^^ */
}

BTW :(如果它被称为./main roses are red!),它将打印:

./main
roses
are
red!