在C中,如果在命令行上没有给出参数,我怎么能产生错误?我没有使用int main(int argc , * char[] argv)
。我的主要没有输入,所以我使用scanf("%d", input)
答案 0 :(得分:3)
您的问题不一致:如果您想从命令行获取参数,则必须使用main
和argc
定义argv
。
main
的原型不正确,应该是:
int main(int argc, char *argv[])
如果程序在没有任何命令行参数的情况下运行,arc
将具有值1
。你可以这样测试:
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("error: missing command line arguments\n");
return 1;
}
...
}
如果使用main
定义int main(void)
,则无法对命令行参数进行可移植访问。读取标准输入与命令行参数无关。
答案 1 :(得分:1)
鉴于代码:
#include <stdio.h>
int main() {
int input;
int rc = scanf("%d", &input);
}
我们可以通过检查其返回值来验证scanf()
是否能够成功地从用户那里获得一些输入。只有当rc == 1
让用户正确地给我们有效的输入时。
如果您想了解更多信息,建议您阅读scanf's documentation。
答案 2 :(得分:0)
嗯,您的main
参数的定义如下:
argc
是参数的数量argv
是参数字符串这意味着您只需要检查argc是否等于1(仅程序名称)并输出错误; - )
如果您仅使用int main()
,则无法知道。