Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
nikkka
Мат в 32 хода
236 / 171 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
#1

Какая разница между cin и getline? - C++

09.01.2010, 13:18. Просмотров 3099. Ответов 6

1) Какая разница между cin и getline?
2) Почему будет работать "string s=a+" "+b" (где а и b другие переменные типм sting), и не будет работать "string s="My dog is "+"very clever""?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2010, 13:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Какая разница между cin и getline? (C++):

Какая разница между cin и scanf?
Здраствуйте. А какая разница между cin и scanf?

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get...

Объясните разницу между "cin.getline" и "std::getline"
string a; cin.getline(a); getline(cin, a);в чем разница между...

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

Отличие функции cin.get и cin.getline
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем,...

Отличие getline() от cin.getline()
Чем отличается getline() от cin.getline() ?

6
odip
Эксперт С++
7161 / 3219 / 76
Регистрация: 17.06.2009
Сообщений: 14,161
09.01.2010, 13:50 #2
1) Какая разница между cin и getline?
Это несравнимые сущности: cin - объект, getline - функция
cin - http://www.cplusplus.com/reference/iostream/cin/
getline - http://www.cplusplus.com/reference/string/getline/

Почему будет работать "string s=a+" "+b" (где а и b другие переменные типм sting), и не будет работать "string s="My dog is "+"very clever""?
Потому что нет функции которая может сделать второе.
Но есть функции типа
string operator + ( string, const char * )
и есть string operator + ( string, string )
1
RazorQ
582 / 349 / 15
Регистрация: 06.02.2009
Сообщений: 1,386
09.01.2010, 14:19 #3
Цитата Сообщение от odip Посмотреть сообщение
Но есть функции типа
string operator + ( string, const char * )
и есть string operator + ( string, string )
В таком случае friend string operator + (string, const char *)
и friend string operator + (string, string)
1
Андрейка
421 / 225 / 87
Регистрация: 25.03.2009
Сообщений: 744
09.01.2010, 14:35 #4
автор, я бы вам посоветовал Мейерса почитать (эффективное использование С++, наиболее эффективное использование C++) там примерно такие вопросы разбираются, а так же связанные с наследованием, управление памяти в С++ конструкторами, деструкторами, динамическиими объектами и т д.
1
nikkka
Мат в 32 хода
236 / 171 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
09.01.2010, 15:40  [ТС] #5
Когда я (на строчках считывания), меняю getline(cin, ...); на cin>>...; то строчки считываютса, но результат совсем другой... Почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name, por, age, info;
int k;
getline(cin, name);
getline(cin, por);
getline(cin, age);
info="I like name "+name+"! I think the "+por+"s are \nthe best dogs! And he is rather young! Just "+age+" years old!";
cout<<info;
cin>>k;
return 0;
}
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,211
Завершенные тесты: 3
09.01.2010, 17:36 #6
Цитата Сообщение от nikkka Посмотреть сообщение
Когда я (на строчках считывания), меняю getline(cin, ...); на cin>>...; то строчки считываютса, но результат совсем другой... Почему?
operator>>
operator>>

<string>

istream& operator>> (istream& is, string& str);

Extract string from istream
Extracts a string from the input stream is storing its content in str. Any previous content of str is cleared.

This function overloads the global operator>> to behave as described in istream::operator>> but applied to string objects.

Notice that the istream extraction operations use whitespaces as separators, therefore this operation will only extract what can be considered a word from the stream. To extract entire lines of text, refer to the string overload of global function getline.
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
09.01.2010, 17:37 #7
cin счытывает данные до первого пробела, getline по умолчанию счытывает до перевода строки.
3
09.01.2010, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2010, 17:37
Привет! Вот еще темы с решениями:

Какая Разница между сортировками?
Какая разница между сортировками, если в итоге все виды сортируют одинаково. Т...

cin.getline и cin.ignore
Есть кусок кода в котором не могу разобраться. Если cin.ignore() есть, то...

Cin вместо cin.getline
#include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;fstream&gt; using namespace...

getline(cin, str) и cin>>
Добрый день. Есть код: ... string str; int N; cin&gt;&gt; N; getline(cin, str);...


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

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

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