You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用scanf读取以##分隔的两个浮点数输入?

使用scanf读取以##分隔的浮点数

要实现读取以##分隔的两个浮点数,核心是利用scanf的格式控制字符串直接匹配分隔符,具体实现如下:

代码示例

#include <stdio.h>

int main() {
    double num1, num2;
    // 格式串中直接写入##,匹配输入里的分隔符
    int read_count = scanf("%lf##%lf", &num1, &num2);

    if (read_count == 2) {
        double total = num1 + num2;
        // 按示例格式输出,保留5位小数
        printf("%.5f + %.5f = %.5f\n", num1, num2, total);
    } else {
        printf("输入格式错误,请遵循「数字##数字」的格式\n");
    }
    return 0;
}

关键说明

  • %lf是scanf读取double类型浮点数的格式符(若使用float类型则替换为%f)
  • 格式串中的##是固定匹配字符,scanf会自动识别输入中的连续两个#作为分隔符,精准提取前后的浮点数
  • 检查scanf的返回值(read_count)是否为2,确保成功读取两个有效浮点数,避免格式错误导致的异常

测试示例

输入:3.19990##9.99921
输出:3.19990 + 9.99921 = 13.19911

内容的提问来源于stack exchange,提问作者Ali Asadullah Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:55:21