Загрузка...

Question about data entry

Thread in C/C++ created by 0x_virus Jan 20, 2022. 270 views

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

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