В настоящее время я пытаюсь получить пользовательский ввод символов, который обрабатывает ввод пользовательских не-символов, таких как целое число, число с плавающей запятой и т. Д. Я прочитал несколько решений по переполнению стека, но ни одно из них не подходит длямне.Вот шесть различных способов, которыми я пытался написать этот код:
#include <stdio.h>
int main(void)
{
int integer;
char character;
scanf("%d", &integer);
fflush(stdin);
scanf("%c", &character);
printf("The ASCII Code of %c is %d", character, character);
Это дало ASCII-код 10 (\ n, то есть символ перевода строки), подразумевая, что fflush (stdin) не очищает пробел перевода строки,Тогда из этого было бы более уместно и удобно, если мы посмотрим на строки 7-8.Теперь я удалил fflush (stdin) и добавил пробел перед спецификатором преобразования% c в scanf (), то есть scanf(" %c", &character)
Это также не сработало, поэтому я попытался сделать следующее: scanf("%c\n", &character)
Это позволило мне ввести значение,в отличие от предыдущих сценариев, хотя символ был не тем, что был введен, потому что сгенерированный код ASCII был все еще 10. Я также попытался манипулировать кодом, используя getchar()
, но код ASCII был или 0 или 10 (пробел или перевод строки)а не фактический ввод символов.Поэтому я был бы очень признателен, если бы кто-нибудь знал, как решить эту проблему.Спасибо!