_wtol
От: Аноним  
Дата: 02.02.04 08:47
Оценка:
не подскажите функци _wtol работает в UNIX или толькот в Windows.
если нет то как преобразовать wchar_t* в long
Re: _wtol
От: unrealalex Россия  
Дата: 02.02.04 08:58
Оценка: 5 (1)
Здравствуйте, <Аноним>, Вы писали:

А>как преобразовать 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. так что выбирай...
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
Re[2]: _wtol
От: unrealalex Россия  
Дата: 02.02.04 09:15
Оценка:
сорри, пропстил

1. boost
const wchar_t* str = L"123";
long result        = 0;
try
{
  result = boost::lexical_cast<long>(str);
}
catch (const boost::bad_lexical_cast&)
{
}
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
Re[2]: _wtol
От: Bell Россия  
Дата: 02.02.04 09:24
Оценка: 4 (1)
Здравствуйте, unrealalex, Вы писали:

U>
U>  result = boost::lexical_cast<long>(str);
U>


U>2. stl

U>

U>std::wstringstream stm;

U>
Любите книгу — источник знаний (с) М.Горький
Re: _wtol
От: Аноним  
Дата: 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 
);
Re[3]: _wtol
От: Аноним  
Дата: 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 — это что
Если не сложно можно нес-ко подробнее
Re[4]: _wtol
От: Bell Россия  
Дата: 02.02.04 12:09
Оценка:
Здравствуйте, Аноним, Вы писали:


А>boost — это что

А>Если не сложно можно нес-ко подробнее


www.boost.org
Любите книгу — источник знаний (с) М.Горький
Re: _wtol
От: MShura  
Дата: 02.02.04 12:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>не подскажите функци _wtol работает в UNIX или толькот в Windows.

А>если нет то как преобразовать wchar_t* в long


Про функции уже написали, хочу добавить, про размер wchar_t.
Под Windows это всегда 2 байта.
У gcc есть ключик -fshort-wchar, который приводит к тому, что wchar_t становится "unsigned short".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.