
16.04.2019, 23:21
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
C++:
Код:
std
::
string
formatString
(
const
char
*
fmt
,
.
.
.
)
{
va_list args
;
va_start
(
args
,
fmt
)
;
std
::
vector
v
(
1024
)
;
while
(
true
)
{
va_list args2
;
va_copy
(
args2
,
args
)
;
int
res
=
vsnprintf
(
v
.
data
(
)
,
v
.
size
(
)
,
fmt
,
args2
)
;
if
(
(
res
>=
0
)
&&
(
res
(
v
.
size
(
)
)
)
)
{
va_end
(
args
)
;
va_end
(
args2
)
;
return
std
::
string
(
v
.
data
(
)
)
;
}
size_t size
;
if
(
res
(
res
)
+
1
;
v
.
clear
(
)
;
v
.
resize
(
size
)
;
va_end
(
args2
)
;
}
}
Не совсем для SF , но может кому и пригодиться.
Для тех кому не нравится форматировать строки через массив чар.
Автор вроде как : 5nw .
Пример :
C++:
Код:
int
iA
=
1
;
float
fA
=
2.0
;
std
::
string sA
=
"privet"
;
std
::
string myVar
=
formatString
(
"int : %i , float : %f , string : %s"
,
iA
,
fA
,
sA
)
;
|
|
|