【发布时间】:2020-05-28 16:24:48
【问题描述】:
假设我有这部分代码。如果用户没有输入文件名作为命令行参数,我想再次询问他以便现在输入它们,但似乎我无法访问 argv[1] 和 argv[2]。例如,当执行第一个 scanf 时,会发生分段错误。但在这种情况下,我如何读取参数并将它们放入 argv[1] 和 argv[2] 中? 提前感谢您的帮助!
int main (int argc, char **argv)
{
if (argc != 3)
{
printf("You did not enter two files.\n");
printf("You can now enter those two files.\n");
printf("file 1: ");
scanf("%s", argv[1]);
printf("file 2: ");
scanf("%s ", argv[2]);
}
printf("%s\n", argv[1]);
printf("%s\n", argv[2]);
FILE *file1 = fopen(argv[1], "r");
FILE *file2 = fopen(argv[2], "r");
}
【问题讨论】:
-
附带说明:在
scanf中使用格式字符串"%s"通常是不安全的。您可能想阅读以下内容:A beginner's guide away from scanf