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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
#1

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

09.01.2010, 13:18. Просмотров 2651. Ответов 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? - C++
Здраствуйте. А какая разница между cin и scanf?

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

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

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

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

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

6
odip
Эксперт С++
7157 / 3219 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
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
577 / 344 / 9
Регистрация: 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
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
09.01.2010, 14:35 #4
автор, я бы вам посоветовал Мейерса почитать (эффективное использование С++, наиболее эффективное использование C++) там примерно такие вопросы разбираются, а так же связанные с наследованием, управление памяти в С++ конструкторами, деструкторами, динамическиими объектами и т д.
1
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 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
2789 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
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
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
09.01.2010, 17:37 #7
cin счытывает данные до первого пробела, getline по умолчанию счытывает до перевода строки.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2010, 17:37
Привет! Вот еще темы с ответами:

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

Cin вместо cin.getline - C++
#include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;fstream&gt; using namespace std; int get_int(int default_value); char name; ...

Не работает ни cin.Get(), ни cin.Getline() - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;conio.h&quot; #include &quot;windows.h&quot; #include &quot;string.h&quot; using namespace::std; const...

getline(cin, str) и cin>> - C++
Добрый день. Есть код: ... string str; int N; cin&gt;&gt; N; getline(cin, str); cout&lt;&lt;str&lt;&lt;endl; //Выводит: &lt;пустота&gt; ...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
09.01.2010, 17:37
Ответ Создать тему
Опции темы

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