Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Imperion
-54 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
1

Конвертировать int в string

22.06.2018, 13:43. Просмотров 1352. Ответов 20
Метки нет (Все метки)

Нужно прибавить к строке s (стринг) несколько переменных типа int. Нашел вот эту тему: Как добавить число в строку string?

Попробовал сделать также - не помогает. Выдает ошибку, мол переменная to_string не объявлена.
Как можно преобразовать int в string? Наоборот знаю функцию atoi. А вот string в int...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2018, 13:43
Ответы с готовыми решениями:

Как конвертировать String в int
Вот например: string a = 09; Сделать что б: Int b = 9; а также: string a = 17; Сделать...

Как int конвертировать в string или char?
например как сделать это: int x=5; string y="Hello"+x;

Как конвертировать массив int в int?
Есть массив целых чисел, как из всех этих чисел получить одно единственное? int myints = {7, 4,...

Ошибка при присвоении argv[1] переменной string. Как конвертировать к типу string?
"call of an object of a class type without appropriate operator() or conversion functions to...

Malloc. Конвертировать void в int.
вот код #include <vcl.h> #pragma hdrstop #include <iostream.h> ...

20
Croessmah
++Ͻ
15816 / 8951 / 1719
Регистрация: 27.09.2012
Сообщений: 21,992
Записей в блоге: 2
Завершенные тесты: 2
22.06.2018, 13:52 2
Цитата Сообщение от Imperion Посмотреть сообщение
Выдает ошибку, мол переменная to_string не объявлена.
Код в студию. И версию компилятора.
0
vlisp
652 / 581 / 117
Регистрация: 10.08.2015
Сообщений: 2,407
Завершенные тесты: 1
22.06.2018, 14:15 3
внимательно читать http://www.cplusplus.com/reference/cstdlib/itoa/
0
Croessmah
++Ͻ
15816 / 8951 / 1719
Регистрация: 27.09.2012
Сообщений: 21,992
Записей в блоге: 2
Завершенные тесты: 2
22.06.2018, 14:30 4
Цитата Сообщение от vlisp Посмотреть сообщение
внимательно читать
Очень внимательно!
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.
0
22.06.2018, 14:30
ValeryS
Модератор
7883 / 5865 / 768
Регистрация: 14.02.2011
Сообщений: 20,158
Завершенные тесты: 1
22.06.2018, 14:38 5
Ну со времен Си есть такая функция sprintf
http://www.c-cpp.ru/content/sprintf

C++
1
2
char buf[256];
sprintf(buf,"%d",i);
правда объемная и неуклюжая, но работает везде
0
Imperion
-54 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
22.06.2018, 14:42  [ТС] 6
У меня компилятор MinGW.
Код я взял прям из той темы, ссылку на которую скидывал в вопросе.
Я думаю, что можно попробовать сделать еще вот как. Создать переменную char, преобразовать значение int в char и затем уже char занести в string. Это, конечно, тоже через одно место, но так можно сделать?
0
Yetty
2603 / 1830 / 1206
Регистрация: 18.12.2017
Сообщений: 5,862
22.06.2018, 14:43 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string> 
using namespace std;
 
int main()
{
    int a, b, c;
    string s, s1, s2, s3;
    cout << "String:\n";
    getline(cin, s);
    cout <<"Enter a, b ,c:\n";
    cin >>a>>b>>c;
    s1 = to_string(a);
    s2 = to_string(b);
    s3 = to_string(c);
    s=s+s1+s2+s3;
    cout <<s<<"\n";    
system("pause");
return 0;
}
0
Imperion
-54 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
22.06.2018, 14:44  [ТС] 8
Yetty, я же говорю, так не работает. Ошибку выдает
0
ValeryS
Модератор
7883 / 5865 / 768
Регистрация: 14.02.2011
Сообщений: 20,158
Завершенные тесты: 1
22.06.2018, 14:44 9
Цитата Сообщение от Imperion Посмотреть сообщение
значение int в char
и как ты занесешь значение 1000?
может имелось в виду char[]? массив
0
Imperion
-54 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
22.06.2018, 14:45  [ТС] 10
Да, естественно. Не так выразился.
Но в любом случае, у меня там числа однозначные. Других в данной программе не будет.
0
TRam_
зомбяк
1275 / 963 / 282
Регистрация: 14.05.2017
Сообщений: 3,148
22.06.2018, 14:59 11
Лучший ответ Сообщение было отмечено Imperion как решение

Решение

Цитата Сообщение от Imperion Посмотреть сообщение
Выдает ошибку, мол переменная to_string не объявлена
Да, эта функция только для С++11 - https://ru.cppreference.com/w/cpp/string/basic_string/to_string

Если не использовать её, то можно с помощью std::stringstream ( https://en.cppreference.com/w/cpp/io/basic_istringstream, https://habr.com/post/131977/ )

C++
1
2
3
4
5
6
7
8
#include <sstream>
 
std::stringstream ss;
ss << a << " " << b << " " << c;
s += ss.str();
ss.clear();
ss << c;
s1 = ss.str();
2
Imperion
-54 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
22.06.2018, 15:03  [ТС] 12
TRam_, спасибо большое! Самый бескровный вариант, как по мне.
0
Croessmah
++Ͻ
15816 / 8951 / 1719
Регистрация: 27.09.2012
Сообщений: 21,992
Записей в блоге: 2
Завершенные тесты: 2
22.06.2018, 15:06 13
Цитата Сообщение от Imperion Посмотреть сообщение
У меня компилятор MinGW.
А версия? Компилятору опцию -std=c++11 добавьте.
0
TRam_
зомбяк
1275 / 963 / 282
Регистрация: 14.05.2017
Сообщений: 3,148
22.06.2018, 15:07 14
Цитата Сообщение от TRam_ Посмотреть сообщение
ss.clear();
Оказалось, так нельзя. Для очистки потока нужно использовать например
C++
1
ss.str(std::string());
0
ValeryS
Модератор
7883 / 5865 / 768
Регистрация: 14.02.2011
Сообщений: 20,158
Завершенные тесты: 1
22.06.2018, 15:11 15
Цитата Сообщение от Imperion Посмотреть сообщение
Но в любом случае, у меня там числа однозначные.
ну тогда, на тебе костыль

C++
1
s+=string((char)((a&0x0F)+'0'))+string((char)((b&0x0F)+'0'))+string((char)((c&0x0F)+'0'));
1
Imperion
-54 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
22.06.2018, 15:11  [ТС] 16
TRam_, хорошо, буду иметь ввиду.
Цитата Сообщение от Croessmah Посмотреть сообщение
А версия? Компилятору опцию -std=c++11 добавьте.
Я вообще думаю сменить его нафиг. Посоветуете хороший компилятор и среду разработки? Чтобы можно было и интерфейс разрабатывать в том числе.

Добавлено через 22 секунды
Цитата Сообщение от ValeryS Посмотреть сообщение
ну тогда, на тебе костыль
Охренеть получается... Через поток все таки попроще)
0
Yetty
2603 / 1830 / 1206
Регистрация: 18.12.2017
Сообщений: 5,862
22.06.2018, 15:12 17
Цитата Сообщение от Imperion Посмотреть сообщение
Yetty, я же говорю, так не работает.
я не понял что у Вас не поддерживается стандарт. посмотрите эту тему: Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17) или перейдите на другой компилятор.
0
Croessmah
++Ͻ
15816 / 8951 / 1719
Регистрация: 27.09.2012
Сообщений: 21,992
Записей в блоге: 2
Завершенные тесты: 2
22.06.2018, 15:12 18
Цитата Сообщение от Imperion Посмотреть сообщение
Посоветуете хороший компилятор и среду разработки?
Для чего?
QtCreator + mingw/clang
CLion + mingw/clang
Visual Studio + cl/clang
Eclipse (но этот монстр жрет новичков).
Цитата Сообщение от Imperion Посмотреть сообщение
Чтобы можно было и интерфейс разрабатывать в том числе.
Это будет зависеть на чем его разрабатывать.
1
Imperion
-54 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
22.06.2018, 15:32  [ТС] 19
Цитата Сообщение от Croessmah Посмотреть сообщение
Для чего?
Для учебы в основном. Но желательно, чтобы в этой среде и с этим компилятором потом была возможность реально работать. Т.е. учиться на том, что сейчас используется, а не просто на тренажерах аля Pascal ABC.
0
Croessmah
++Ͻ
15816 / 8951 / 1719
Регистрация: 27.09.2012
Сообщений: 21,992
Записей в блоге: 2
Завершенные тесты: 2
22.06.2018, 17:06 20
Лучший ответ Сообщение было отмечено Imperion как решение

Решение

Imperion, тогда можете посмотреть в сторону Visual Studio, Visual Studio Code, QtCreator, CLion, да и на другие тоже. В принципе, при достаточной квалификации разницы будет не много, и перепрыгнуть с одного на другое проблем не составит.
1
22.06.2018, 17:06
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2018, 17:06

char to int не могу не как конвертировать
читаю из файла в массив char'ов соответственно есь массив из четырех элементов в каторых записан...

Ошибка: невозможно конвертировать лямбда-выражение в int
Ошибка в 7 строчке.пишет что не может конвертировать лямбда-выражение в int. #include &lt;iostream&gt;...

Конвертировать string в LPCWSTR
Как nbg string конвертировать в LPCWSTR и наоборот?


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

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

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