我正在尝试在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>
我说错了吗?
答案 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!