Форум программистов, компьютерный форум CyberForum.ru

Ввод значения целочисленной переменной из консоли - C++

Восстановить пароль Регистрация
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
17.11.2012, 19:34     Ввод значения целочисленной переменной из консоли #1
Доброго времени суток.
Вот проблемная часть кода:
C++
1
2
3
4
5
6
7
...
setlocale(LC_ALL, "Russian");
int a;
cin >> a;
if('\n' == a)
   break;
...
Проблема следующая:
если на вход подавать символ, то в a попадает несоответствующий ему код (например при вводе 'e'(англ.) вводиться символ перевёрнутого значка логического отрицания).
Подскажите, как это исправить. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 19:34     Ввод значения целочисленной переменной из консоли
Посмотрите здесь:

C++ Ввод с консоли в *char
C++ Ввод значения символьной переменной
Ввод значения в функцию класса пользователем (с консоли) C++
C++ Ввод предложения с консоли
C++ Целочисленная функция от целочисленной переменной
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
17.11.2012, 19:57     Ввод значения целочисленной переменной из консоли #2
не совсем понятно, а вы объявили как int и вводите символы???
и if у вас странный, может все же
C++
1
if (a == '\n' )
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
17.11.2012, 20:22  [ТС]     Ввод значения целочисленной переменной из консоли #3
if правильный(результат в обоих случаях будет один и тот же). Тип же int поставил потому, что нужно обрабатывать кроме символов и числа > 255 (char, и int целочисленные), но если это и явл. проблемой, то именно почему я и хочу узнать.
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
17.11.2012, 20:30     Ввод значения целочисленной переменной из консоли #4
с if вы правы, попутал с присвоением.

cin и cout "смотрит" тип переменной в которую он передает или от которой получает значение, по этой причине вряд ли получится передать переменной типа int значение символа (char) отсюда и ошибка имхо.

Как вариант можно считывать в массив char
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2012, 21:01     Ввод значения целочисленной переменной из консоли #5
Цитата Сообщение от PG94 Посмотреть сообщение
если на вход подавать символ, то в a попадает несоответствующий ему код (например при вводе 'e'(англ.) вводиться символ перевёрнутого значка логического отрицания).
Это как вы определили? Если cin >> должен считать введённое значение в переменную типа int, то он будет ждать цифру. Если первым символом будет не цифра (или не + -), то cin >> вообще ничего не считает в переменную и установит флаг ошибки, после этого поток ввода вообще не будет работать. В переменной останется то, что было до этого, а если она неинициализированна, как у вас, то мусор.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
17.11.2012, 21:18     Ввод значения целочисленной переменной из консоли #6
Если стоит break; то я думаю, что вы это дело выполняете в цикле и хотите, чтобы пользователь вводил значение переменной до нажатия "энтер" ?
Тогда вам придется отлавливать каждый вводимый символ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 21:26     Ввод значения целочисленной переменной из консоли
Еще ссылки по теме:

Ввод чисел в консоли C++
Ввод в консоли C++
C++ Объявление целочисленной переменной с именем var_i

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
17.11.2012, 21:26     Ввод значения целочисленной переменной из консоли #7
Считывайте всё в строку и разбирайте уже строку.
Yandex
Объявления
17.11.2012, 21:26     Ввод значения целочисленной переменной из консоли
Ответ Создать тему
Опции темы

Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru