我正在尝试在 C 中运行主要方法,但遇到了麻烦。这就是我所拥有的
int main(int argc, char *argv[])
{
if(argc == 0)
return 0;
printf("%s \n", argv[0]);
main(--argc,++argv);
}
在命令中我写这个,./main 玫瑰是红色的!
但它没有运行,我相信它会在屏幕上打印这个
r
○
s
e
s
一个
r
e
r
e
d
!
我对么?
我正在尝试在 C 中运行主要方法,但遇到了麻烦。这就是我所拥有的
int main(int argc, char *argv[])
{
if(argc == 0)
return 0;
printf("%s \n", argv[0]);
main(--argc,++argv);
}
在命令中我写这个,./main 玫瑰是红色的!
但它没有运行,我相信它会在屏幕上打印这个
r
○
s
e
s
一个
r
e
r
e
d
!
我对么?
您看到的输出对我来说似乎不正确。
因此,让我们尝试运行您的代码。
[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
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;
}
注意:您的函数不返回任何值。Main 应该无条件地返回 int:
int main(int argc, char *argv[])
{
if(!argc)
return 0;
printf("%s\n", argv[0]);
return main(--argc,++argv);
/* ^^^^^^ */
}
顺便说一句:(如果它被称为./main roses are red!)它会打印:
./main
roses
are
red!