с++ / cin не работает

Языки программирования, IDE, компиляторы, интерпретаторы, гипервизоры и виртуальные среды
Правила форума
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Версия ОС вместе с разрядностью. Пример: LM 18.1 x64, LM Sarah x32 2. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 3. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 4. Суть. Желательно с выводом консоли, логами. 5. Скрин. Просьба указывать 1, 2 и 3 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
ravial555
Сообщения: 90
Зарегистрирован: 09 ноя 2016, 18:15
Решено: 1
Откуда: МО, Кубинка
Благодарил (а): 14 раз
Поблагодарили: 6 раз

с++ / cin не работает

Сообщение ravial555 » 17 сен 2017, 20:52

Ребят, Минт работает и хобби ради решил позаниматься С++. Сразу говорю, я только только вхожу. Но возникла проблема, о которой не знаю где и почитать.

Код простейший.
#include <iostream>
#include <string>
using namespace std;
int main()
{
	int man1;
	int man2;
	string name1;
	cout <<"Как вас зовут?\n";
	getline(cin, name1);
	cout << "Сколько вам лет?\n";
	cin >> man1;
	string name2;
    cout << "А как вас зовут?\n";
    getline(cin, name2);
	cout << "Сколько вам лет?\n";
	cin >> man2;
	
	return 0;
}
Редактирую в Джинни. Не могу понять почему я не могу присвоить переменной name2 значение. В ходе поисков заметил, что если закомментировать строку cin>>man1 и переменную man1, то всё работает... Проблему я эту обошёл, но интересно таки почему код не работает как хочется? Глупая ошибка? Или какая то особенность в работе с переменными...
Последний раз редактировалось пользователем 1 Dja; всего редактировалось раз: 15
Причина: spoil

Аватара пользователя

zinks
Сообщения: 95
Зарегистрирован: 23 июл 2017, 08:02
Решено: 1
Благодарил (а): 4 раза
Поблагодарили: 9 раз

с++ / cin не работает

Сообщение zinks » 17 сен 2017, 21:18

я конечто не очень знаком с С++, но на С я бы переменые обявил сначала все, а не засовывал name2 кудато в код.
Linux Mint 18.2 x86_64
kernel: 4.12.3
DE: Cinamon
Asus SABERTOOTH 990FX rev 1.0 / FX-6200 / Radeon R7 260x

Аватара пользователя

root
Сообщения: 678
Зарегистрирован: 16 фев 2017, 17:03
Решено: 3
Откуда: г. Хабаровск
Благодарил (а): 206 раз
Поблагодарили: 163 раза

с++ / cin не работает

Сообщение root » 17 сен 2017, 22:14

zinks, для временных переменных сие неудобно.
ravial555, вроде бы #include <iostream> в GNU/Linux даром не нужен (но это не точно). getline, вроде бы, вводится в таком формате getline (cin, name1, '\n'). А вообще могу посоветовать как начинающему - https://www.youtube.com/watch?v=MOpF5lk ... gs&index=1
Изображение

Аватара пользователя

darkfenix
Сообщения: 825
Зарегистрирован: 27 июн 2017, 10:36
Решено: 11
Благодарил (а): 52 раза
Поблагодарили: 136 раз

с++ / cin не работает

Сообщение darkfenix » 18 сен 2017, 03:00

ravial555 писал(а): getline(cin, name1);
Зачем? Прощеcin >> name1
Ну и для name2 точно так же. Ниразу не использовал getline(), поэтому про особенности работы с ним не могу ничего сказать.

Аватара пользователя

FliXis
Сообщения: 248
Зарегистрирован: 31 авг 2016, 11:01
Решено: 5
Благодарил (а): 63 раза
Поблагодарили: 15 раз

с++ / cin не работает

Сообщение FliXis » 18 сен 2017, 03:24

Для вопросов по программированию рекомендую форум - http://www.cyberforum.ru/
А так, рекомендую не заморачиваться со строками, там свои нюансы и это редко нужно на реальной работе.

Аватара пользователя

FliXis
Сообщения: 248
Зарегистрирован: 31 авг 2016, 11:01
Решено: 5
Благодарил (а): 63 раза
Поблагодарили: 15 раз

с++ / cin не работает

Сообщение FliXis » 18 сен 2017, 03:27

root писал(а):ravial555, вроде бы #include <iostream> в GNU/Linux даром не нужен (но это не точно)
Вы спутали наверно с #include <stdafx.h> :smile:

Аватара пользователя

root
Сообщения: 678
Зарегистрирован: 16 фев 2017, 17:03
Решено: 3
Откуда: г. Хабаровск
Благодарил (а): 206 раз
Поблагодарили: 163 раза

с++ / cin не работает

Сообщение root » 18 сен 2017, 05:09

FliXis, если уж спутал, точно не с этим.
darkfenix, обычно дабы ввести строку с пробелами без проблем.
Изображение

Аватара пользователя

Автор темы
ravial555
Сообщения: 90
Зарегистрирован: 09 ноя 2016, 18:15
Решено: 1
Откуда: МО, Кубинка
Благодарил (а): 14 раз
Поблагодарили: 6 раз

с++ / cin не работает

Сообщение ravial555 » 18 сен 2017, 05:26

Ребят, я следую книге Эллайн А., С++ от ламера до программера, поэтому #include <iostream> . К тому же при ошибке в этой строке Джинни на меня ругается и отказывается компилировать.

Все переменные изначально я размещал в начале программы - результат тот же. Строка getline(cin, name2); не работает. :dash2:

И да я обошёл проблему используя cin >> name2. Но вопрос то остался. И пробел в понимании сути языка тоже.

На киберфоруме я лазил... были как будто похожие ситуации. Но ответа я пока не нашёл. Прежде чем лазить туда решил спросить у "своих" :smile:

Аватара пользователя

darkfenix
Сообщения: 825
Зарегистрирован: 27 июн 2017, 10:36
Решено: 11
Благодарил (а): 52 раза
Поблагодарили: 136 раз

с++ / cin не работает

Сообщение darkfenix » 18 сен 2017, 05:32



Dima26RUS
Сообщения: 1
Зарегистрирован: 14 дек 2017, 18:23

с++ / cin не работает

Сообщение Dima26RUS » 14 дек 2017, 18:31

Попробуй заменить "getline" на "gets" или "get" и там уже дальше смотри, но смотри на VS по крайней мере нужно было библиотеки подключать, хз как у тебя

Вернуться в «Программирование, скриптинг, виртуализация»