Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 04.12.2021
Сообщений: 3

Оператор cin в нескольких местах кода

04.12.2021, 12:12. Показов 742. Ответов 4
Метки cin (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Совсем недавно начал изучать плюсы и столкнулся с проблемой, ответа на которую не нашел, даже у гугла))
Есть простенький код. В нем несколько раз применяется оператор cin. В первый раз программа дает записать свои данные: UserName. Во второй раз, когда нужно записать значения (GuessA,B,C), программа не спрашивает их, а автоматом записывает в значения мусор. Почему?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
 
using namespace std;
 
 
int main()
{
 
    setlocale(LC_ALL, "Rus");
 
    cout << "Введите имя:" << endl;
 
    char UserName;
    int GuessA, GuessB, GuessC;
 
    cin >> UserName;
    
    
 
cout << "Ты секретный агент застрявший в комнате с кодовым замком" << endl;
cout << "Что бы выбраться наружу тебе нужно ввести правильный код..." << endl;
 
 
 
cout << "Введите код:" << endl;
 
cin >> GuessA;
cin >> GuessB;
cin >> GuessC;
 
cout << "You entered:" << GuessA <<" " << GuessB << " " << GuessC << endl;
 
return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2021, 12:12
Ответы с готовыми решениями:

Оператор cin. Ввод нескольких переменных через делитель
Всем доброго времени суток. Я начинаю работать с C++ и столкнулся с такой проблемой при написании программы. Мне надо ввести в консольном...

Оператор cin. Задать ширину для вывода нескольких значений
Добрый вечер, уважаемые программисты. Проблема заключается в следующем: При выводе таблицы столбцы получаются неровными. Вот код: ...

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть какие-нибудь замечания, то просьба написать что не...

4
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12943 / 6810 / 1821
Регистрация: 18.10.2014
Сообщений: 17,235
04.12.2021, 12:16
Цитата Сообщение от AlexSkos Посмотреть сообщение
оператор cin
Нет никакого "оператора cin".

Цитата Сообщение от AlexSkos Посмотреть сообщение
Во второй раз, когда нужно записать значения (GuessA,B,C), программа не спрашивает их, а автоматом записывает в значения мусор.
Вы что-то выдумываете. Пробуем: http://coliru.stacked-crooked.... 78e6cb3d98. Все работает, как и должно.

Цитата Сообщение от AlexSkos Посмотреть сообщение
Почему?
Потому что вы пытаетесь читать из cin что-то, что не является числом. Где ваш пример ввода? Почему он не приведен? Как мы должны догадаться, что вы там пытались вводить?
0
0 / 0 / 0
Регистрация: 04.12.2021
Сообщений: 3
04.12.2021, 12:34  [ТС]
"Введите имя:

Alex

Ты секретный агент застрявший в комнате с кодовым замком
Что бы выбраться наружу тебе нужно ввести правильный код...

Введите код:

You entered:0 -858993460 -858993460"

После ввода Alex, жму enter, и мне не дает возможности программа ввести значения Guess, а сразу выдает You entered:0 -858993460 -858993460 и заканчивает компиляцию программы. Могу скрин сделать. Как пользоваться http://coliru.stacked-crooked.com не совсем понял, нужно разобраться.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12943 / 6810 / 1821
Регистрация: 18.10.2014
Сообщений: 17,235
04.12.2021, 12:47
Лучший ответ Сообщение было отмечено AlexSkos как решение

Решение

Цитата Сообщение от AlexSkos Посмотреть сообщение
"Введите имя:
Alex
"Alex"? Это как это? У вас под имя заведена переменная

C++
1
char UserName;
Это - один символ. Один символ и прочитается. То есть если вы введете Alex, то имя у вас прочитается как A. А lex останется сидеть в cin непрочитанным. Именно это lex вы и пытаетесь читать через

C++
1
2
3
cin >> GuessA;
cin >> GuessB;
cin >> GuessC;
Разумеется получается ерунда.

Почему вы вводите Alex в качестве имени? Вы же сами написали в программе, что имя - это один символ. Вот один символ и вводите.
1
0 / 0 / 0
Регистрация: 04.12.2021
Сообщений: 3
04.12.2021, 12:52  [ТС]
Спасибо огромное! Действительно, в этом проблема была) Еще разбираться и разбираться конечно с этим всем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2021, 12:52
Помогаю со студенческими работами здесь

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые мне не понятны, и прошу объяснить, как...

Оператор cin и ошибка
Вот у меня есть такая прога она считивает цифру если она входит в диапазон пишет Ок и завершает програму если нет то спрашивает еще...

Оператор cin в одну строку
Подскажите как организовать вывод через cin в одну строку на примере: #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод. Не пойму предназначение cin.get()...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru