Что делает чертов cin.ignore(); в с++ - Вопросы по С+

Вопрос Что делает чертов cin.ignore(); в с++

Регистрация
19 Дек 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
короче все началось с того что я захотел сделать в с++ input() как в питон а там как, там этот инпут работает даже когда enter просто нажимаешь а в плюсах, там если энтр нажмешь то просто спускаешься нижена новую строчку, так вот нашел я ответ вроде это cin.ignore() он игнорит какой то поток(так чатгпт сказал) ну все типо разобрались что это почему если я его добовляю в код вот так #include

using namespace std;



int main() {

setlocale(LC_ALL, "RU");

int num = 45;

cout
 
Регистрация
10 Дек 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Ндаааааа... #include
#include

std::string input( const char* msg )
{
std::string s;
std::cout
 
Регистрация
4 Дек 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Потому что в конце строки в виндовс 2 символа. Это символ конца строки и символ перевода каретки. Поэтому 2 символа в потоке ввода надо игнорить.
 
Регистрация
31 Дек 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
ignore() без параметров удаляет один символ из соответствующего потока.
оператор >> вначале удаляет все пробельные символы пока не дойдет до нужного типа, считывает нужный тип, а все что было введено после него - остается в потоке.
Например если после второй переменной не сразу нажать энтер, а например нажать пробел и энтер - то в потоке останется два символа (пробел и \n).
Вообще можно посмотреть сколько символов осталось после ввода: cout
 
Сверху Снизу