【发布时间】:2011-12-05 19:10:14
【问题描述】:
这是我所拥有的:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main(int argc, char **argv)
{
while(*argv++ != 0)
{
printf("Argument!\n");
printf("%s %d\n",*argv,(int)strlen(*argv));
int i = 0;
while(*argv[i])
{
printf("char!\n");
printf("%c\n",*argv[i]);
i++;
}
printf("End of for loop\n");
}
return 0;
}
当我运行 ./a.out 测试时,输出是:
Argument!
test 4
char!
t
Segmentation Fault
我已经盯着这个看了几个小时了。为什么我的程序不会逐个字符地打印每个命令行参数?
我是 C 和数组指针对偶性的新手,所以如果这是问题所在,我不会感到惊讶。任何帮助表示赞赏!
【问题讨论】:
-
这并不能解决您的问题,但是如果您想要具有复杂命令行的程序,请查看 getoptlong()
-
你的 IDE 是什么?您是否在调试器中单步执行了代码?崩溃前 i 的值是多少?
-
没有 IDE。 Unix 中的命令行。
标签: c arrays pointers command-line char