| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Проблема с cin.get() |
| Автор: Hawaii 31.7.2007, 01:11 | ||
| Пытаюсь ввести две строки через cin.get(). Первая строка вводится, а вторая нет. В чем проблема? Программа сравнивает две строки (моя версия strcmp(str1, str2)... )
|
| Автор: JackYF 31.7.2007, 02:03 |
Извини, но никакой критики по производительности не выдерживает. Хорошая функция как минимум не должна вызывать strlen и иметь так много ветвлений. Кроме того, функция сравнения должна принимать аргументы типа const char*. юзай cin.getline() и в случае чего, после ввода первой строки cin.sync(), хотя не должно понадобиться. |
| Автор: Kuvaldis 31.7.2007, 02:20 | ||
| Hawaii, Проблема в том, что метод get() работает и принимает символы до того момента, пока не встретит символ окончания (по умолчанию "ввод") Все что до ВВОДА, заносится в буфер, но сам символ \n из очереди клавы НЕ УБИРАЕТСЯ Выход: между вызовами cin.get() поставить cin.ignore(), чтобы выкинуть ненужный символ и вводить новую строку P.S. Это при условии, что ты вводишь строки через нажатие ВВОДА А вообще, правильно сказал JackYF: юзай getline() Добавлено через 38 секунд
|
| Автор: NoNo 31.7.2007, 14:43 |
| разберись с потоками.... |
| Автор: Predator_2004 3.8.2007, 11:59 | ||
Попробуй так:
|
| Автор: Rockie 3.8.2007, 12:21 |
| Лучше http://msdn2.microsoft.com/en-us/library/5b5x9wc7(VS.80).aspx |
| Автор: Mayk 3.8.2007, 19:12 |
Строго говоря её нет в стандартах. В си есть fgets(); ИМХО getline(cin, str) удобнее cin.getline(buf,bufsize) |
| Автор: Dronchik 5.8.2007, 12:40 |
| И ещё. С какого ... консоль выведет русские буквы. Нужно выставить локаль или плоьзоваться функцией CharToOem. |