Как читать целочисленные значения, пока символ «o» не будет нанесен в C? - PullRequest
0 голосов
/ 03 мая 2019

, поэтому моя проблема в том, что мне нужно читать целочисленные значения от пользователя, пока не будет введен символ «o». Я не знаю, как отличить символ от числа при чтении значений от пользователя.

Я хотел использовать время, это было довольно естественно.

#include <stdio.h>
#include <stdlib.h>

void main()
{
    int a;

    do
    {
        scanf("%d", &a);
    } while (a != 'o');
}

но, конечно, я не могу использовать% d для символа, который я введу во время работы программы.

Таким образом, программа должна читать целые числа от пользователя, пока не будет введен определенный символ (в данном случае «o»). Прямо сейчас, после ввода символа, он не будет читать мой ввод, программа просто зависнет там. Большое спасибо!

1 Ответ

0 голосов
/ 03 мая 2019

Может не быть идеальным решением, но я предлагаю не использовать одну и ту же переменную для чтения целых чисел и символов, вместо этого вы можете использовать другую переменную char для чтения символа, если вы введете 'o', это завершится иначе он будет читать 'return' char, когда вы нажмете Enter и получите read для чтения следующего целого числа. Я изменил программный бит, чтобы сделать это (так как scanf () игнорирует char 'o', getchar () прочитает его и затем выйдет из цикла while)

#include <stdio.h>
#include <stdlib.h>

void main()
{
   int a;
   char c;

   do
   {
      scanf("%d", &a);
      c = getchar();
   } while (c != 'o');

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...