Как сохранить символ ввода пользователя в переменную / массив? - PullRequest
0 голосов
/ 12 октября 2018

Я делаю калькулятор конвертера единиц (игнорируйте имена функций, для которых они переставлены), и я пытаюсь сохранить введенный пользователем символ char (т. Е. M, g или c) дляпредставляют собой единицу, которую они хотят преобразовать.Мой код застревает в функции scanf(), и я не уверен, почему он не займет один символ char, когда я указываю длину userUnit array в 2 (один для хранения нулевого терминатора).Есть мысли?

#include <stdio.h>

//Function prototypes
double fahrToCelc(double cel);
double meterToFoot(double foot);
double poundToGram(double pound);

int main(){
    double conversions;
    char userUnit[2];
    char letter[4] = "gmc";

    //User inputs
    scanf("%lf %s",&conversions, userUnit);

    if(userUnit[0] == letter[0]){        
        printf("%.6lf lb",poundToGram(conversions));

    }else if(userUnit[0] == letter[1]){
        printf("%.6lf ft",meterToFoot(conversions));

    }else if(userUnit[0] == letter[2]){        
        printf("%.6lf f",fahrToCelc(conversions));
    }

    return 0;    
}

//Function declarations
double fahrToCelc(double cel){
    double fahr = 32 +(1.8*cel);
    return printf("%lf",fahr);
}

double meterToFoot(double meter){
    double foot = meter*0.3048;    
    return printf("%lf", foot);
}

double poundToGram(double gram){
    double pound = gram/0.002205;    
    return printf("%lf",pound);
}
...