Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395

Переменные типа sstream

28.10.2014, 11:44. Показов 7351. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Разбираюсь с sstream .Вот простенький код.
C++
1
2
3
4
5
6
7
8
9
 #include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
std::sstream blabla<<" Я учусь языку с++";//переменная типа sstream
std::cout<<blabla<<std::endl;
}
Что тут не так? я понимаю что переменную напрямую не вытащить и нужно сначала ее загнать в string ,а потом этот string можно будет через cout выводить. Но как это практически сделать ,никогда этого не делал.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2014, 11:44
Ответы с готовыми решениями:

Создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар
Здравствуйте. Необходимо создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар. ругается в...

Создать программу обработки массивов структур используя структурные переменные и переменные типа объеденения
Создать массив структур, каждая из которых состоит из следующих елементов: факультет, курс, группа, фамилия студента и екзаменационная...

Как описываются переменные типа запись? В каких случаях целесообразно использовать переменные типа запись?
1. Как описываются переменные типа запись? 2. В каких случаях целесообразно использовать переменные типа запись? 3. Из каких...

29
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
31.10.2014, 20:00  [ТС]
Студворк — интернет-сервис помощи студентам
zss,
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
    
#include <string>
#include <iostream>
#include <string.h>
 using namespace std;
int main()
{
 
 
char S[]="Строка, которая будет разбита на отдельные слова "; //Исходное предложение
char *Ptr=NULL; //Указатель для функции strtok
 
Ptr=strtok(S," ");
 
while (Ptr)
{
   cout<<Ptr<<"\n";
   Ptr=strtok(0," \n");
}
 
cout<<S; //Исходная строка изменена
 
return 0;
}
Я напал на след этой функции ,но интересное дело . Почему то выводит первое слово вдобавок. ?

Добавлено через 15 минут
zss, Разобрался ,спасибо .была лишняя строка.
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
03.11.2014, 08:32  [ТС]
zss,
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    
#include <string>
#include <iostream>
#include <string.h>
 using namespace std;
int main()
{
  int k;
 int i;
int n=0;
string slovo[10];
char d[]="Строка, которая будет разбита на отдельные слова "; //Исходное предложение
char *Ptr=NULL; //Указатель для функции strtok
 
Ptr=strtok(d," ");
 for(int n=0;Ptr;n++){
 
    cout<<slovo[n];
 
  slovo[i]=Ptr;
}
 
 
string buf;
for(int i=0;i<n;i++)
 
  cout<<slovo[i]<<endl;
  
string *znak=new string[n];//выделил память для дин. массива
char buffer[255];
  for (int i = 0; i < n; i++) {
    
cout<<"введи описание  слова "<<slovo[i];
cin.getline(buffer,255);
znak[i]=buffer;
}
for (int i = 0; i < n; i++){
cout<<i+1<<"."<<slovo[i]<<"-"<<znak[i]<<"."<<endl;
}
cout<<"значение какого слова ты хочешь изменить?";
(cin>>k).get();//Для пропуска оставшегося в потоке символа '\n' 
cout<<"введи новое описание  слова "<<slovo[k-1];
 
cin.getline(buffer,255);
 
znak[k-1]=buffer;
 
 
for (int i = 0; i < n; i++)
cout<<i+1<<"."<<slovo[i]<<"-"<<znak[i]<<"."<<endl;
delete[]znak;
    return 0;
 
}
несколько дней не могу разобраться где ошибка.Я совместил два кода .строкой slovo[i]=Ptr; я пытаюсь слова загнать в массив и дальше с ними работать по старой схеме.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
03.11.2014, 08:47
Цитата Сообщение от sergei60 Посмотреть сообщение
строкой slovo[i]=Ptr; я пытаюсь слова загнать в массив и дальше с ними работать по старой схеме.
Что вы хотели сказать своим 'slovo[i]=Ptr', если до этого переменная 'i' нигде ничем не инициализируется?

Также когда вы делаете 'cout<<slovo[n]' элемент 'slovo[n]' ничем не инициализирован.
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
03.11.2014, 19:43  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
char *Ptr=NULL; //Указатель для функции strtok
 
     Ptr=strtok(d,",. ");
int n;
for(  n=0;Ptr;n++){
    
    slovo[n]=Ptr;
     Ptr=strtok(0,",. ");
    cout<<" "<< slovo[n];
}
все разобрался ,мой проблеммный участок будет выглядеть так.

Добавлено через 5 часов 20 минут
zss,
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
#include <iostream>
#include <string>
#include <sstream>
#include <string.h>
using namespace std;
int main(){
    
string p;
 
 char s[60]=("k d   d k        k ddd   \n");
cout<<s;
 char *Ptr=0; //Указатель для функции strtok
 
     Ptr=strtok(s," ");
     while (Ptr)
{
 
 
 Ptr=strtok(0," ");
 
    cout<<Ptr<<" "; 
p=Ptr;//строка ,где хранится исправленный текст
 
 
}
    return 0;
}
Сергей Сергеевич,где у меня ошибка в этом коде. Задача почти похожая ,поэтому я в этой теме написал ,ну и простите ,чтобы вас захватить.
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
03.11.2014, 20:40
C++
1
2
3
4
5
6
7
8
    Ptr=strtok(s," ");
    while (Ptr)
    {
        cout<<Ptr<<" "; 
        p=Ptr;//строка ,где хранится исправленный текст
        //cout<<p<<endl;
        Ptr=strtok(0," \n");
    }
1
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
04.11.2014, 14:09  [ТС]
zss, Благодарю!

Добавлено через 17 часов 9 минут
zss, я продолжаю разбираться с кодом ,но ведь в р не хранится весь мой исправленный текст. там только последнее слово. а предыдущие затерлись ,как же быть?
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
04.11.2014, 14:12
C++
1
2
3
4
int n=0;
string p[10000];
...
 p[n++]=Ptr;
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
05.11.2014, 06:58  [ТС]
zss,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main(){
    string p;
    char s[60];
cout<<"Введите строку символов с произвольн.пробелами"<<endl;
cin.getline(s,60);
char *Ptr=NULL; //Указатель для функции strtok
  Ptr=strtok(s," ");
    while (Ptr)
 {
        p=p+" "+Ptr;
        cout<<Ptr<<" ";//эту строку можно не выводить.
    Ptr=strtok(0," \n");
 }
 cout<<"в (р) хранится  исправлненный текст"<<endl;
cout<<" "<<p<<" ";
    return 0;
}
получилось реализовать таким образом,а ваш метод,что то не пошел ,скорее всего я не разобрался в нем .Я суммировал так p=p+" "+Ptr;
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
05.11.2014, 18:32
Цитата Сообщение от sergei60 Посмотреть сообщение
p=p+" "+Ptr;
Так нельзя.
Либо
C++
1
2
p+=" ";
p+=Ptr;
либо
C++
1
p=p+string(" ")+string(Ptr);
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
05.11.2014, 18:46
Цитата Сообщение от zss Посмотреть сообщение
Так нельзя.
Это почему же?

Оператор '+' группируется слева-направо, соответственно 'p + " " + Ptr' - это '((p + " ") + Ptr)'. Во всех сложениях присутствует 'std::string' и все работает, как задумано.

Это вот так нельзя: '" " + Ptr + p'. А вот так 'p + " " + Ptr' и вот так '" " + p + Ptr' - можно.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2014, 18:46

Даны переменные N типа DB и K типа DW. Вычислить значение выражения K=N(N-1)/2
Помогите пожалуйста,только в начале изучения NASM, выдает ошибки в 20,23,33,35,37 строчках. Заранее спасибо!! global _main extern...

Переменные типа bool
Сколько переменных типа bool здесь определено: bool &amp;l1, &amp;p2, **t3, b4, *n5, w6;

переменные типа byte
public class Test { public static void main(String args) { byte b = 12; byte k = b + 1; System.out.println(k); } }

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

Переменные ссылочного типа
Возник вопрос при присваивании переменных ссылочного типа. Пример кода public struct Person { public string Name; ...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru