Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

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

17.11.2012, 19:34. Просмотров 669. Ответов 6
Метки нет (Все метки)

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

Ввод значения в функцию класса пользователем (с консоли) - C++
Все привет. Столкнулся с проблемой. К примеру есть класс: class Employee { private: int age; public: int GetAge()...

Ввод значения символьной переменной - C++
Здравствуйте. Подскажите пожалуйста, как в ЯВУ C осуществить ввод символа. Я пытался это сделать следующим образом: scanf("%c",&ch); ...

Целочисленная функция от целочисленной переменной - C++
Наверно это глупый вопрос, но все же, я не могу найти информацию об этом, гугл выдает о типе данных int. Я понимаю, что не так вопрос...

Запомнить введенное значение в целочисленной переменной - C++
Напишите один оператор С++, соответствующий следующему: Прочтите целое число с клавиатуры и запомните введенное значение в целой...

Объявление целочисленной переменной с именем var_i - C++
Требуется написать объявление целочисленной переменной с именем var_i

Ввод в консоли - C++
Возникла проблема: необходимо при вводе в консоли сделать так, чтобы при нажатии enter вводил значение по умолчанию. Также необходима...

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

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

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

потоковый ввод с консоли - C++
Всем привет! Нужно в цикле вводить строки с консоли, пока пользователю не надоест. Вопрос: как пользователю завершить ввод? Такой код: ...

Ввод символов из консоли - C++
Всем привет! Подскажите пожалуйста почему, когда мы через консоль (путем драгЭдропа) указываем адрес файла, и этот адрес имеет пробел,...

Ввод предложения с консоли - C++
Здравствуйте, как в 7 строке сделать самостоятельный ввод текста. #include <iostream> #include <string> using namespace std; int...

Безопасный ввод с консоли - C++
Добрый день есть функция безопасного ввода чисел в консоли: int Protocol::SafeIn() { int k, n = 0, flgS = 0, c = 0, q = 0; ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru