Хотя я понимаю, что макет этой программы странный, я думаю, что моя программа испытывает проблемы, когда дело доходит до строки scanf()
. По какой-то причине после ввода функции metricConversion()
. Строка scanf()
печатается, но программа завершает работу и завершает работу перед тем, как вводить данные ... Я не понимаю, почему это происходит ...
#include <stdio.h>
char inputtedChar;
int inputtedInt;
int metricConversion(){
scanf("Press K for conversion from Kelvin to Celsius %c", &inputtedChar);
if(inputtedChar == 'K'){
//do Something
} else { return 0; }
}
int main() {
printf("Press 0 to enter conversion function!");
scanf("%d", &inputtedInt);
if (inputtedInt == 0) {
metricConversion();
}
}
Более важно, может кто-то объяснить, почему scanf()
работает так, как работает? И каковы лучшие альтернативы, чтобы я не столкнулся с этим снова?