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

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

Войти
Регистрация
Восстановить пароль
 
Auramel
2 / 2 / 0
Регистрация: 25.09.2014
Сообщений: 29
#1

Stringstream C++ - C++

25.11.2015, 21:16. Просмотров 591. Ответов 5
Метки нет (Все метки)

Доброго времени суток!
Совсем недавно мне понадобились преобразования int to string и наоборот. Заинтересовал метод, используя stringstream.

Я написал 2 функции. Одна преобразует из int в string, другая наоборот. Получилось примерно так:

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
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
string intToString(int value)
{
    stringstream ss;
 
    ss << value;
 
    return ss.str();
}
 
int stringToInt(string value)
{
    stringstream    ss;
    int             buffer;
 
    ss << value;
    ss >> buffer;
 
    return buffer;
}
 
int main(int argc, char* argv[])
{
    cout << stringToInt("123");
    cout << intToString(123);
    return 0;
}
код рабочий, но меня не устраивает тот факт, что приходится использовать временный буфер в функции stringToInt(), чтобы сохранить в него данные, а потом возвращать его. Если убрать буфер и написать return ss.str(), то будет ошибка. Почитал документацию на http://www.cplusplus.com/reference/s...ingstream/str/ Здесь написано, что метод str() возвращает string объект, то бишь int не может возвращать. Пошарил другие методы, ни нашел ни одного, который возвращал бы int. Может, знает кто, как через методы получить мне int?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2015, 21:16     Stringstream C++
Посмотрите здесь:

Использование stringstream - C++
Добрый день!

Stringstream и считывание по строчно - C++
Есть вот такой список смежности: 2 3 3 2 Как его правильно считать? Мне говорили что это можно сделать с помощью stringstream,...

Не подключается stringstream в проект - C++
Здравствуйте, у меня есть небольшой проект к которому подключено несколько сторонних библиотек. Сам проект разбит на 13 файлов, в каждом из...

Передать stringstream аргументом - C++
Есть абстрактный логгер с перегрузкой оператора () Хочется передавать в него любые аргументы, для которых у ostream есть перегрузка ...

Ипользование класса stringstream - C++
Всем привет. Дело такое: задача одного из моих методов класса запросить вводи имени клиента и его номер счета, ну и сохранить их в...

Stringstream нечего не выводит - C++
s=wcstod(str, NULL); std::stringstream ss; ss &lt;&lt; s; double u; ss &gt;&gt; u; Почему нечего не выводиться ?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5274 / 4594 / 1539
Регистрация: 14.04.2014
Сообщений: 18,249
25.11.2015, 21:22     Stringstream C++ #2
Есть функция stoi(), если компилятор не древний.
Твой вариант проще не сделаешь, можно только убрать 21-ю строку:
C++
1
2
3
4
5
6
7
8
9
int stringToInt(string value)
{
    istringstream    ss(value);
    int             buffer;
 
    ss >> buffer;
 
    return buffer;
}
MaKaRoN IV
15 / 15 / 6
Регистрация: 20.04.2013
Сообщений: 64
25.11.2015, 21:23     Stringstream C++ #3
Ссылка с решением на stackoverflow для конвертирования числа в строку.

C++
1
std::string s = std::to_string(42);
Ссылка с решением на stackoverflow для конвертирования строки в число.

C++
1
std::stoi( str )
nmcf
5274 / 4594 / 1539
Регистрация: 14.04.2014
Сообщений: 18,249
25.11.2015, 21:23     Stringstream C++ #4
А для преобразования в строку - to_string().
Auramel
2 / 2 / 0
Регистрация: 25.09.2014
Сообщений: 29
25.11.2015, 21:24  [ТС]     Stringstream C++ #5
да, я использовал раньше все эти разновидности atoi, stoi и прочие, но вот stringstream заинтересовал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2015, 21:25     Stringstream C++
Еще ссылки по теме:

std::stringstream precision - C++
Как обрезать количество символов во входной строковой поток? к примеру: float a=4.768123; std::stringstream ss; ss &lt;&lt; a; ...

Ошибки при использовании stringstream - C++
Текст программы: #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main()...

Чем отличается istringstream от stringstream? - C++
можете объяснить работу каждого оператора?

Как сделать std::stringstream - C++
Как преобразовать из &quot;const char *&quot; в &quot;LPCWSTR&quot; ... std::stringstream Str_Stream; Str_Stream &lt;&lt; App_Tittle.c_str() &lt;&lt; &quot; FPS: &quot;...

Проблемы с созданием потока stringstream - C++
Компилятор ругается на строку stringstream str Пишет: main.cpp:18:19: error: aggregate ‘std::ostringstream ss’ has incomplete type...

Очистить поток std::stringstream - C++
Вызываю функцию и в ней в поток инициализирую строку lеftPPF, далее вызываю повторно функцию и иниц-я проводится еще раз, и в потоке...


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

Или воспользуйтесь поиском по форуму:
Kerry_Jr
Модератор
Эксперт PHP
2178 / 1974 / 689
Регистрация: 14.05.2014
Сообщений: 5,773
Записей в блоге: 1
Завершенные тесты: 5
25.11.2015, 21:25     Stringstream C++ #6
Auramel, std::to_string(int/long/float/double) и std::stoi(std::string). Вторая функция начиная с С++11.
Yandex
Объявления
25.11.2015, 21:25     Stringstream C++
Ответ Создать тему
Опции темы

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