Так что в моем классе часть домашнего задания - это функция, которая вернет символ, который был введен.Программа, не возвращающая отсканированный символ
Я попытался создать этот образец кода, но он не работает, как я надеялся.
#include <stdio.h>
char readCharacter();
int main(){
char x;
x = readCharacter();
printf("You inputted %c", x);
return 0;
}
char readCharacter(){
char z;
printf("Input character\n");
scanf("% c", &z);
return z;
}
Я ввожу персонажа, я решил ввести w, и программа сказала мне, что у персонажа был какой-то странный фанковый шрифт.
Фактический код с домашней работой, или, точнее, отрывок из него, является
#include <stdio.h> // needed by printf, scanf()
#include <ctype.h> // needed by tolower()
#include <stdlib.h> // for exit()
double readNumber(char *prompt) {
double val;
printf("%s", prompt);
scanf("% lf", &val);
//if input is not a number, exit program
if (scanf("%lf", &val) != 1) {
printf("Invalid input.\n");
exit(1);
}
return val;
}
char readYesOrNo(char* prompt) {
char yn;
printf("%s\n", prompt);
scanf("% c", &yn);
return yn;
}
int main() {
double bonus;
char yesNo;
yesNo = readYesOrNo("Did the worker get a bonus ? (y/n) ");
if (yesNo == 'y' || yesNo == 'Y') {
bonus = readNumber("Enter bonus: ");
}
else {
bonus = 0;
}
return 0;
}
В реальном коде домашних заданий, функция readYesOrNo даже и не ждать меня к входу ничего, он просто отображает запрашивая ответ ay/n, затем переходит к следующей строке кода, не дожидаясь ввода пользователя и не получая ответа.
У меня нет подсказки, почему это не работает.
Не ставьте пробел между% и с. –
Вы произвольно вводите случайные пространства. Зачем? –