怎么用getchar函数

用户输入一个浮点数,不能用scanf函数,必须用getchar函数把用户输入的浮点数字符转换成浮点数数据,输出用户输入的浮点数+2.4以后的结果

亲测可用,麻烦采纳一下哟,谢谢❤

#include <stdio.h>
#include <math.h>
int main(){
    char ch;
    int i=1;
    int ap=0;
    float num;
    while(1)
    {
        ch=getchar();
        if(ch==10){
            break;
        }
        if(ch>='0'&&ch<='9'){
            if(!ap){
                num*=10;
                num+=(ch-'0');
            }
            else{
                num+=(ch-'0')*pow(10,-i);
                i++;
            }
        }
        else{
            if(ch=='.'){
                ap=1;
            }else{
                printf("Error: You can just input number");
                return -1;
            }
        }
        //printf("%f\n",num);
    }
    printf("%f",num+2.4);
}

供参考:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char s[12];
    int  i = 0;
    double num;
    while ((s[i] = getchar()) != '\n') i++;
    num = atof(s);
    printf("%f", num + 2.4);
    return 0;
}

不用数组与函数的写法,供参考:

#include <stdio.h>
int main()
{
    char ch;
    int  n = 0,k = 1,flg = 0;
    double num = 0;
    while((ch = getchar()) != '\n')
    {
        if (ch >='0' && ch <='9')
        {
            n = n * 10 + ch - '0';
            if (flg) k *= 10;
        }
        else if (ch == '.'){
            num = n;
            n = 0;
            flg = 1;
        }
    }
    num += (double) n / k + 2.4;
    printf("%g", num);
    return 0;
}