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

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

Войти
Регистрация
Восстановить пароль
 
kindlyforever
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 6
#1

В переменную типа string записывается только первое слово строки - C++

13.03.2010, 15:20. Просмотров 569. Ответов 7
Метки нет (Все метки)

Как вписывать предложения в тип string (если возможно)? То есть скажем после
C++
1
2
3
string randomstr;
cin >> randomstr; // вводим например "Hello cruel world"
cout << randomstr;
на экран высветиться только Hello. Возможно ли заносить предложение целиком?
и ещё, я знаю что по правилам задавать можно только один вопрос, но тема совсем смежная: при куске кода
C++
1
2
3
4
5
6
vector<string> vect1;
string lulz;
while(cin >> lulz) // вводим "Moderator's gonna ban me for sure"
{
vect1.push_back(lulz);
}
в вектор занесутся 6 слов с разными индексами. Как это выходит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2010, 15:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В переменную типа string записывается только первое слово строки (C++):

Ввод предложения в консольном приложении: в переменную попадает только первое слово - C++
Есть код void main() { setlocale(LC_ALL, &quot;rus&quot;); SetConsoleCP(1251); SetConsoleOutputCP(1251); string str; cin &gt;&gt;...

Считывается только первое слово из строки - C++
Считываю строки из файла. Почему-то считывается только первое слово из строки. Помогите while (a != &quot;%&quot;) { file &gt;&gt; a; mass =...

Азбука Морзе, кодируется только первое слово строки - C++
проблема в том,что это прога переводит первое слово строчки. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int...

Как записать длину строки типа string в переменную - C++
Собственно вопрос в заголовке. Спасибо заранее:) Через i=s.size() // где, s -&gt; string, i -&gt; int; не работает

НЕ записывается содержимое файла в переменную типа char - C++
Нужно открыть файл, сохранить содержимое текста файла в переменную типа char под названием buffer и вывести переменную buffer на экран. При...

Определить, содержит ли последнее слово строки букву, с которой начинается первое слово - C++
2.) В динамической памяти размещена строка символов. Определить, содержит ли последнее слово строки букву, с которой начинается первое...

7
Monte-Cristo
2789 / 1375 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
13.03.2010, 15:25 #2
C++
1
2
3
string randomstr;
cin >> randomstr; // вводим например "Hello cruel world", а реально записывается только "Hello"
cout << randomstr;
Для типа string нужно делать вот так:
C++
1
2
3
string randomstr;
getline(cin, randomstr);
cout << randomstr;
А для char*
C++
1
2
3
char str[50];
cin.getline(str, 50);
cout << str;
1
hx
3 / 10 / 0
Регистрация: 03.03.2010
Сообщений: 71
13.03.2010, 16:44 #3
kindlyforever, как правило в c++ (и в c) используют char[], а не string, большинство функций предназначено для него.

Тогда возможно:
C++
1
2
3
char[] randomstr;
cin >> randomstr;
cout << randomstr;
1
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.03.2010, 17:43 #4
Цитата Сообщение от hx Посмотреть сообщение
как правило в c++ используют char[], а не string
ИМХО, Совершенно неверный подход к идеологии Си++.
0
hx
3 / 10 / 0
Регистрация: 03.03.2010
Сообщений: 71
13.03.2010, 18:02 #5
fasked, возможно, тем не менее в большинстве кода, который я видел, сделано именно так. и
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.03.2010, 18:09 #6
Цитата Сообщение от hx Посмотреть сообщение
fasked, возможно, тем не менее в большинстве кода, который я видел, сделано именно так.
Думаю код относился в основном к учебным программам. Без особой необходимости никто не станет возиться со строками в стиле Си - уж очень это неудобно.
0
AnonymC
1164 / 446 / 24
Регистрация: 23.06.2009
Сообщений: 6,287
Завершенные тесты: 1
13.03.2010, 23:54 #7
оператор cin записывает в переменную все до последнего пробела,для этого нужно написать
C++
1
2
string s;
getline(cin,s);
0
Monte-Cristo
2789 / 1375 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
14.03.2010, 00:49 #8
Цитата Сообщение от hx Посмотреть сообщение
fasked, возможно, тем не менее в большинстве кода, который я видел, сделано именно так
ты видел код - говнокодеров... и не стоит путать C++ и C. В С - не было std::string, потому что std::string - это класс, работать с которым значительно безопасней чем с char*.

Так же не стоит забывать о методе c_str(), которые вернет char* из string, а так же други методах класса string, которые свободно заменяют базовые Сишные функции работы с массивом символов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2010, 00:49
Привет! Вот еще темы с ответами:

Из файла копируется только первое слово - C++
Доброго всем здравия, духовного и телесного. Создаю в проекте текстовый файл, копирую в него какой-либо текст. Запускаю код, который должен...

Чтение из файла в переменную типа string - C++
Добрый вечер! :) Вот делаю программу в одном из элементов которой нужно прочесть из файла в переменную типа string имя продукта так вот я...

Переменную типа string вывести в printf? - C++
как в переменную типа string вывести в printf? #include &lt;stdio.h&gt; // для принтф #include &lt;stdlib.h&gt; #include &lt;string&gt; using...

Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки) - C++
2)Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки)


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
14.03.2010, 00:49
Ответ Создать тему
Опции темы

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