我正在编写一个需要接受命令行输入的代码。输入验证是标记标准的一部分所以我正在编写一段代码来检查输入的数字是否正确,以便我可以在以后将其放入主代码中(为无效输入添加一个else情况以阻止用户)
#include<stdio.h>
int main(int argc, char* argv[])
{
double a;
a = 75;
if(argc == 2);
{
sscanf(argv[1], "%lf", &a);
printf("%lf \n", a);
}
printf("%d% \n", argc);
return(0);
}
程序在命令行上打印至少一个参数,但是当没有输入参数时它会打印出一个分段错误,并且当多个参数出现时仍会扫描。
帮助?
答案 0 :(得分:4)
if(argc == 2);
相当于
if(argc == 2)
;
在有条件执行
后,您需要删除;
以获取块
if(argc == 2)
// ^ no trailing ; now
{
sscanf(argv[1], "%lf", &a); // now only executed if argc == 2