【发布时间】:2016-05-10 14:31:49
【问题描述】:
有没有更好的方法来接受输入, 例如: ls = 列出当前目录中的所有文件... cat Q1.c 将显示等
在我看来,我现在正在努力编写代码
int main(int argc, char *argv[])
{
int i;
char *dest = NULL;
if(argc==1) {
printf( "No arguments were passed.\n" );
}
else {
printf("Arguments:\n");
for(i=1;i<argc;++i) {
printf("%d. %s\n", i, argv[i]);
dest = malloc(strlen(argv[i])+1);
if(i<2) {
sprintf(dest, "%s",argv[i]);
}
else {
sprintf(dest, "%s %s", argv[i-1], argv[i]);
}
}
mysystem(dest);
}
return 0;
}
【问题讨论】:
-
看看 getopt_long 标准库调用
-
我不知道你的问题是什么。
-
你没有为
sprintf(dest, "%s %s", argv[i-1], argv[i]);分配足够的内存,注意:每个循环都会用另一个内存分配覆盖dest,所以你不能free之前的任何一个。
标签: c