Загрузка...

Вопрос про ввод данных

Тема в разделе C/C++ создана пользователем 0x_virus 20 янв 2022. 263 просмотра

  1. 0x_virus
    0x_virus Автор темы 20 янв 2022 смерть 251 24 авг 2019
    Всем привет. Недавно по приколу начал изучать C++. Это не первый мой язык, так что особых проблем пока не возникает, но есть один вопрос по вводу данных. Написал программу, которая в цикле печатает число, которое я ввожу. Всё хорошо, но если я ввожу не число а например строку - то вижу, что программа начинает пропускать операцию ввода данных и просто выводит число 0 (причём всегда 0, после ввода строки). Как я понимаю, это особенность языка, но может кто-нибудь пояснить почему так происходит, как правильно обрабатывать такие случаи?
     
  2. maksemen1
    maksemen1 20 янв 2022 мани с гейма https://zelenka.guru/threads/5792572/ 9274 28 июл 2018
    код скинь то
     
    1. Посмотреть предыдущие комментарии (8)
    2. maksemen1
      LVV, строка это массив символов
    3. Rvge
      0x_virus, когда cin что-то не то считал, там флаг ошибки устанавливается, его нуно сбросить (cin.clear()), а потом очистить в буфере то что не считывается (cin.ignore())
  3. undrcrxwn
    undrcrxwn 20 янв 2022 Заблокирован(а) 102 5 апр 2021
    есть std::stoi, std::atoi и std::cin.fail()
     
    20 янв 2022 Изменено
    1. Посмотреть предыдущие комментарии (4)
    2. undrcrxwn
    3. LVV
      undrcrxwn, [IMG]
      что за псевдокодеры пошли, человек даже не понимает, что делает функция atoi и stoi и у тебя очень слабое понимание английского.

      и про не поддержку, ты походу и еще не умеешь кодить на плюсах
    4. std
      LVV, чел ты... гений
  4. std
    std 24 янв 2022 9 3 янв 2017
    добавь в цикл
    if (cin.fail()) {
    cin.clear();
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
     
    24 янв 2022 Изменено
    1. 0x_virus Автор темы
      std, спасибо))
Top
Загрузка...