|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.09.2012, 21:11 | #1 |
Пользователь
Регистрация: 29.06.2012
Сообщений: 19
|
cin в while
Доброго дня суток. Я начинающий программист на с++ и начал учить его не так давно. Недавно начал писать программку, но сразу же наткнулся на проблему. Мне надо сделать проверку числа при вводе. Нужно чтобы оно было целым. Все бы ничего, но код зависает в бесконечном цикле. Вроде бы все правильно... Помогите кто чем может))))
Код:
|
09.09.2012, 22:19 | #2 |
Пользователь
Регистрация: 24.07.2012
Сообщений: 28
|
переменную c лучше сделать тип char, а потом пробовать парсить в инт
|
09.09.2012, 22:22 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
09.09.2012, 23:33 | #4 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
В данном случае, я просто перемотал позицию внутри этого буфера на начало. Новая запись затрет старую. |
|
10.09.2012, 00:14 | #5 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Можно ещё вот так вот сделать:
Код:
|
10.09.2012, 03:16 | #6 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Как то вы буфер очищаете по умному я так не видел еще. Как на счет cin.sync(), я всегда так очищал его или в этом если недостатки
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
10.09.2012, 13:49 | #7 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2_Bers
Код:
2kineziz Цитата:
вон правильно говорят. читай в строку, проверяй, что это нужная тебе последовательность символов. все анализаторы входных данных в консольных приложениях так и поступают. никто не пишет scanf("%d", &i) или cin >> i, ибо эти вещи чреваты ошибками. это можно писать только в тех случаях, когда ты уверен, что будет введено число (например, читаешь из структурированного файла). но даже тут нужно проверять на ошибки. вот в таких случаях и нужны все эти методы good() bad() и т.д. в твоем же - просто читай строку.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 10.09.2012 в 13:58. |
|
10.09.2012, 20:16 | #8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
И кстати, накой парсить строчку, если всегда можно проверить флаг, и зачистить буфер стрима? По-моему, парсить строчку в этом случае - мартышкин труд. |
|
10.09.2012, 20:26 | #9 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
гцц/мингв/студия прожевали, и ничо так. В чем именно заключается не портабельность?
Последний раз редактировалось pproger; 11.09.2012 в 19:13. |
11.09.2012, 19:12 | #10 | |||
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
Цитата:
криво - потому что ты использовал c-style stream в с++. непортабельно - вызов fflush на поток ввода - неопределенное поведение Цитата:
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
cin и cin.get | NightEagle | Общие вопросы C/C++ | 8 | 30.03.2011 18:23 |
cin.get в while | kaljan775 | Общие вопросы C/C++ | 6 | 30.09.2010 14:59 |
Cin | _-Re@l-_ | Общие вопросы C/C++ | 8 | 25.06.2010 23:17 |
cin | ReaktiV | Общие вопросы C/C++ | 3 | 31.05.2010 15:57 |
cin??? | Paul_AG | Общие вопросы C/C++ | 4 | 24.04.2009 14:02 |