如何确保输入是C编程语言的两倍

Chr*_*_45 3 c validation scanf

我怎样才能确保我有双倍而不是别的东西?

int main() {
    int flagOk = 0;
    double number;
    while(!flagOk) {
        printf("Put in a double");
        scanf("%lf", &number);
        if(number == "%lf"); //this want make sure
        flagOk = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*ler 8

检查返回值scanf(); 它会告诉您转化成功的次数.

在上下文中,如果转换失败,则得到0; 如果成功,你得1.

需要考虑错误恢复.我通常发现使用fgets()(并且永远不会得到()!)然后处理它更容易读取一行数据sscanf().如果转换失败,很容易丢弃错误的数据.

  • 检查scanf的返回值,例如,`if(scanf("%lf",&number)!= 1)/*error:number是"invalid"*/;`. (2认同)