c - 如何确保输入是 C 编程语言中的 double

标签 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;
    }
}

最佳答案

检查 scanf() 的返回值;它会告诉您有多少次转化成功。

上下文中,如果转换失败,则得到0;如果成功,您将获得 1。

需要考虑错误恢复。我通常发现使用 fgets()(和 never gets()!)读取一行数据然后使用 sscanf() 处理它更容易。如果转换失败,很容易丢弃错误数据。

关于c - 如何确保输入是 C 编程语言中的 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681873/

相关文章:

c - 将矩阵 2D 转换为 1D

C - 随机数生成器的问题

php - 服务器端文件验证不适用于 Yii.2.0

asp.net - 使用javascript和服务器端禁用/启用requiredFieldValidators

java - 使用 DAO 时的数据验证模式

c - 如何使用 fscanf 扫描 IP 地址

c - 网络接收定时器以 ms 分辨率

c - 当在随机位置键入字符时,使用文本编辑器打开的文件中的文本如何向右移动?

c - 为什么 fprintf()/fscanf()/printf() 在我的 Dec-to-Binary 程序中显示错误的输出,而 printf() 和 sscanf() 工作正常?

c++ - C/C++ 多个 scanf 在一个函数中