|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.04.2013, 23:00 | #1 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Символ в int
Доброго времени суток. В любой написанной мною программе, где присутствует тип данных int, при вводе в последний чего угодно, кроме числа, программа тут же начинает некорректно себя вести. Хотелось бы спросить, можно ли как то сделать проверку, чтобы пользователь не мог переменной типа int присвоить букву или символ.
P.S. программированием занимаюсь не так давно, так что был бы благодарен за код с комментариями |
08.04.2013, 23:15 | #2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Если что, функция scanf() возвращает число успешно прочитанных переменных, а с потоком ввода (скажем, std::cin) можно поступить вот так. |
|
08.04.2013, 23:19 | #3 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Ну, например, если я использую цикл и случайно ввожу в переменную букву, то цикл, а далее и сама программа завершатся. Вот пример.
Код:
|
09.04.2013, 10:58 | #4 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Во-первых, в Вашем примере программа не завершится никогда.
Во-вторых, Вы смотрели код по ссылке из моего предыдущего сообщения? Код:
|
09.04.2013, 12:21 | #5 | |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Цитата:
Пожалуйста, никогда так не делайте. Не знаю как это работает на виндовсе, а на юниксах это ставит на паузу весь вывод в консоль (в том числе от других программ).
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
|
09.04.2013, 22:46 | #6 | |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Цитата:
Раньше использовал _getch(), но мне сказали, что программы, которые используют conio.h нельзя перенести на линукс и посоветовали тот самый system("pause"). Есть ли другие варианты? |
|
09.04.2013, 23:21 | #7 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
ммм точно не помню, но вроде бы std::getc(); Надо стандарт почитать будет.
upd. Не помню, можно-ли использоваться std::без переменной. Вроде бы нет. А так можно было бы Код:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 09.04.2013 в 23:29. |
09.04.2013, 23:28 | #8 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
|
09.04.2013, 23:37 | #9 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
К стати, по поводу ввода строки в int случайно наткнулся на такой пример (не проверял):
Код:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
09.04.2013, 23:53 | #10 | |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Цитата:
А так спасибо |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Assembler!!! Заменить на символ ‘!’ каждый 3тий символ в строке. | Leon9313 | Помощь студентам | 0 | 24.04.2012 13:02 |
Двухзначное число int записать как пару однозначных int (c++) | narien | Помощь студентам | 2 | 08.01.2012 15:10 |
функция float average(int arrray[],int from,int to) | yuliyayuliya | Помощь студентам | 0 | 25.04.2011 21:55 |
С++:invalid types 'int[int]' for array subscript | greendoom | Помощь студентам | 0 | 19.03.2011 16:53 |
С++ Опереатор перезагрузки ()(int,int) | Jane-sad | Помощь студентам | 1 | 08.10.2010 15:26 |