Пользовательский ввод символов Пропущен или не пропущен, но не сохранен - PullRequest
0 голосов
/ 25 сентября 2018

В настоящее время я пытаюсь получить пользовательский ввод символов, который обрабатывает ввод пользовательских не-символов, таких как целое число, число с плавающей запятой и т. Д. Я прочитал несколько решений по переполнению стека, но ни одно из них не подходит длямне.Вот шесть различных способов, которыми я пытался написать этот код:

#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 (пробел или перевод строки)а не фактический ввод символов.Поэтому я был бы очень признателен, если бы кто-нибудь знал, как решить эту проблему.Спасибо!

...