C语言命令行如何进行多次传参

CK-KKK 2019-03-22 09:54:45
菜鸡萌新求助——C语言作业
作业要求通过命令行运行你的exe文件,然后判断是否传入参数,如果没有传入参数,那么屏幕上输出提示,让你输入参数,但是怎么在次输入参数

#include<stdio.h>
int main(int argc, char *argv[])
{
if (argc == 1)
{
printf("please enter parameter! ATTENTION:The first parameter is number,the second parament is whatever you want!\n");
scanf("%s",argv[1]);
}
printf("%s",*argv[1]);
return 0;

}

我想试一试scanf,但是命令行就卡在那里了
求大佬解答
...全文
241 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2019-03-22
  • 打赏
  • 举报
回复
#include<stdio.h>
int main(int argc, char *argv[])
{
    char str[1024];
    char* p = argv[1];
    if (argc == 1)
    {
        printf("please enter parameter!  ATTENTION:The first parameter is number,the second parament is whatever you want!\n");
        scanf("%s", str);
        p = str;
    }

    printf("%s",p);
    return 0;
      
}
lin5161678 2019-03-22
  • 打赏
  • 举报
回复
引用 3 楼 niiiloc 的回复:
你的程序也没啥错啊,卡在那里是因为在等待用户输入参数 你随便输入个参数就过去了
有的 argc是1 argv[1]是NULL scanf("%s", NULL); 会凉凉
lin5161678 2019-03-22
  • 打赏
  • 举报
回复
另外定义一个数组 新输入的参数就存到数组里面就完事
棉猴 2019-03-22
  • 打赏
  • 举报
回复
MSDN中提到
The __argc global variable is a count of the number of command-line arguments passed to the program. __argv is a pointer to an array of single-byte-character or multi-byte-character strings that contain the program arguments.
argc是命令行的参数数量,而argv是一个指向数组的指针,这个数组中的元素是命令行中的参数。也就是说,argv指向的数组中的元素的数量要与argc相同
if (argc == 1)
{
printf("please enter parameter! ATTENTION:The first parameter is number,the second parament is whatever you want!\n");
scanf("%s",argv[1]);
}

在以上代码中,argc的值是1,则argv的数组元素个数是1个,不会存在argv[1],所以程序会报错。因此,不能用scanf()输入参数。此时之只能是如2楼所说,退出程序。在cmd中输入参数,重新进入。
  • 打赏
  • 举报
回复
scanf(“%s”, &argv[1]);
636f6c696e 2019-03-22
  • 打赏
  • 举报
回复
你的程序也没啥错啊,卡在那里是因为在等待用户输入参数 你随便输入个参数就过去了
赵4老师 2019-03-22
  • 打赏
  • 举报
回复
#include<stdio.h>
int main(int argc, char *argv[])
{
if (argc == 1)
{
printf("please enter parameter! ATTENTION:The first parameter is number,the second parament is whatever you want!\n");
return 1;
}
printf("%s",argv[1]);
return 0;

}

H:\a大一下>xxx.exe
please enter parameter! ATTENTION:The first parameter is number,the second parament is whatever you want!

H:\a大一下>xxx.exe 1 abc
1
CK-KKK 2019-03-22
  • 打赏
  • 举报
回复
别沉了啊。。。。
CK-KKK 2019-03-22
  • 打赏
  • 举报
回复
谢谢各位大佬的解答,感谢感谢!

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧