Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2013, 05:25   #1
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию Корректная конкатенация переменных

Есть переменные a и b типа int.
Нужно корректно сконкатенировать в строку:
string st = a + " + " + b + " = ";
Как?
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 07.02.2013, 06:12   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Какой язык программирования вы используете для этого?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 07.02.2013, 08:59   #3
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
Радость

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Какой язык программирования вы используете для этого?
Использую я для этого язык C++.
Забавно Спросили коты, ответила собачка (см. аватарки)
Не конкатенируется нормально. Делаю как угодно, все равно появляются какие-то эзотерические ошибки. Значит, не в ту степь забрел

Давайте уж наглядно напишу.

Код:
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

int main() {

string s;
int a = 10;
int b = 20;

s = a + " + " + b + " = "; 

cout << s; // Должно получиться так: "10 + 20 =";


cout << "Hit any key...";
_getch();
return 0;
}
Никто

мой блог

Последний раз редактировалось three_cats; 07.02.2013 в 09:18.
three_cats вне форума Ответить с цитированием
Старый 07.02.2013, 09:14   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

three_cats

Есть переменные a и b типа int.
Нужно корректно сконкатенировать в строку:
string st = a + " + " + b + " = ";


std::stringstream ss;
ss << a << " + " << b << " = ";
std::string st = ss.str();
Rififi вне форума Ответить с цитированием
Старый 07.02.2013, 09:27   #5
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
three_cats

Есть переменные a и b типа int.
Нужно корректно сконкатенировать в строку:
string st = a + " + " + b + " = ";


std::stringstream ss;
ss << a << " + " << b << " = ";
std::string st = ss.str();
Спасибо.
А можно без строкового потока?
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 07.02.2013, 09:51   #6
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
А можно без строкового потока?
можно, но с вариант с потоком самый простой и красивый.

Можно использовать опастный sptrintf, например, но это плохо.

Можешь использовать не std::string, а какой-нибудь другой, например в QString есть метод QString::number для таких целей.
rrrFer вне форума Ответить с цитированием
Старый 07.02.2013, 11:21   #7
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

А можно без строкового потока?

Можно.
std::string s = boost::str(boost::format("%1% + %2% = ") % a % b);
Rififi вне форума Ответить с цитированием
Старый 07.02.2013, 12:40   #8
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
Радость

Большое спасибо, друзья! Помогли.
Никто

мой блог
three_cats вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректная работа Darth_Vader C# (си шарп) 2 20.05.2012 07:52
конкатенация Darlee БД в Delphi 2 20.04.2012 18:24
конкатенация LPSTR SNUPY Visual C++ 5 10.02.2011 17:23
конкатенация строк larry Win Api 3 26.07.2009 08:22