Здравствуйте, DukeNukem3D, Вы писали:
DND>Здравствуйте, Кодт, Вы писали:
К>>Нет, ты неправильно используешь чтение y/n.
К>>Дело в том, что
К>>К>>cout >> "yes or no? ";
К>>cin << c;
К>>getline(cin, s, '\n');
К>>
К>>Отрабатывает следующим образом:
К>>1) выводится просьба
К>>2) cin<<c передаёт управление консоли
К>>3) консоль ожидает завершения ввода (для неё это символы LF или EOF)
К>>4) ты вводишь 'Y' и LF (чтобы завершить ожидание)
К>>5) консоль возвращает управление
К>>6) cin<<c читает первый символ ('Y'), в буфере остаётся LF
К>>7) getline() читает строку до LF включительно — что, собственно, ты и наблюдаешь.
К>>Необходимо после чтения однобуквенного ответа очищать буфер до конца строки.
DND>Хорошо, а как очистить буфер?
Порылся в доках, сделал так:
cout << "Enter Name of the employeer" << endl;
getline(cin, sName);
cout << "Wanna enter more? (y/n) >";
cin >> cCheck;
cin.sync();
ведет себя также:
Enter Name of the employeer
a
Wanna enter more? (y/n) >y
Enter Name of the employeer
Wanna enter more? (y/n) >y
Enter Name of the employeer
Wanna enter more? (y/n) >n
Name a ID 1
Name ID 2
Name ID 3