От:
Аноним
Дата: 02.02.04 08:47
Оценка:
не подскажите функци _wtol работает в UNIX или толькот в Windows.
если нет то как преобразовать wchar_t* в long
Здравствуйте, <Аноним>, Вы писали:
А>как преобразовать wchar_t* в long
Два эквивалентных варианта:
1. boost
const wchar_t * str = L"123" ;
long result = 0;
try
{
result = lexical_cast<long >(str);
}
catch (const boost::bad_lexical_cast&)
{
}
2. stl
const wchar_t * str = L"123" ;
long result = 0;
std::stringstream stm;
stm << str;
stm >> result;
P.S.
lexical_cast реализован посредством stringstream. так что выбирай...
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
сорри, пропстил
1. boost
const wchar_t * str = L"123" ;
long result = 0;
try
{
result = boost:: lexical_cast<long >(str);
}
catch (const boost::bad_lexical_cast&)
{
}
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
Здравствуйте, unrealalex, Вы писали:
U>U> result = boost:: lexical_cast<long >(str);
U>
U>2. stl
U>
U>std::w stringstream stm;
U>
Любите книгу — источник знаний (с) М.Горький
От:
Аноним
Дата: 02.02.04 09:44
Оценка:
Здравствуйте, Аноним, Вы писали:
А>не подскажите функци _wtol работает в UNIX или толькот в Windows.
А>если нет то как преобразовать wchar_t* в long
Convert strings to a long-integer value.
long strtol(
const char *nptr,
char **endptr,
int base
);
long wcstol(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
От:
Аноним
Дата: 02.02.04 10:59
Оценка:
Здравствуйте, unrealalex, Вы писали:
U>сорри, пропстил
U>1. boost
U>U>const wchar_t * str = L"123" ;
U>long result = 0;
U>try
U>{
U> result = boost:: lexical_cast<long >(str);
U>}
U>catch (const boost::bad_lexical_cast&)
U>{
U>}
U>
boost — это что
Если не сложно можно нес-ко подробнее
От:
Bell
Дата: 02.02.04 12:09
Оценка:
Здравствуйте, Аноним, Вы писали:
А>boost — это что
А>Если не сложно можно нес-ко подробнее
www.boost.org
Любите книгу — источник знаний (с) М.Горький
От:
MShura
Дата: 02.02.04 12:25
Оценка:
Здравствуйте, Аноним, Вы писали:
А>не подскажите функци _wtol работает в UNIX или толькот в Windows.
А>если нет то как преобразовать wchar_t* в long
Про функции уже написали, хочу добавить, про размер wchar_t.
Под Windows это всегда 2 байта.
У gcc есть ключик -fshort-wchar, который приводит к тому, что wchar_t становится "unsigned short".
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить