Форум программистов, компьютерный форум CyberForum.ru

Перевод из wchar_t* в int (double) - C++

Восстановить пароль Регистрация
 
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 537
29.07.2015, 15:52     Перевод из wchar_t* в int (double) #1
Как перевести из wchar_t* в int (double) без учета впереди стоящих нулей?
то есть у меня есть строка типа 050609, где 05 часов 06 минут и 09 секунд
делаю так
C++
1
2
3
4
5
6
7
8
wchar_t token[100] = L"050609";
wchar_t buff[10] = L"";
wcsncpy(buff, token, 2);
int hTime = _wtoi(buff);
wcsncpy(buff, token+2, 2);
int mTime = _wtoi(buff);
wcsncpy(buff, token + 4, 2);
int sTime = _wtoi(buff);
и как понимаю, у меня идет преобразование из восьмеричной системы? то есть с числами до 10 сработает, а если будет строка 0571, то я не получу число 571? как это исправить?

И еще попутный вопрос, надо ли проводить очистку buff перед каждым использованием или при использовании wcsncpy содержимое buff заменяется и последний символ запишется \0?
при использовании примерно следующего кода что я получу?
C++
1
2
3
4
wchar_t token[100] = L"050609";
wchar_t buff[10] = L"";
wcsncpy(buff, token, 4);
wcsncpy(buff, token, 2);
buff =="05" или buff =="0506"?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 15:52     Перевод из wchar_t* в int (double)
Посмотрите здесь:

C++ double и int
C++ int и double
2 int to double C++
Double, int , long double C++
C++ double в int
C++ int* to double*
Перевод int и double в char* C++
Преобразовать 2 числа int в 1 число float(double) | double int1.int2 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4278 / 3709 / 1246
Регистрация: 14.04.2014
Сообщений: 14,503
29.07.2015, 18:10     Перевод из wchar_t* в int (double) #2
Почему ты считаешь, что будет в восьмеричной системе? Используй wsctol().
Очистку проводить не надо, а вот конец строки устанавливать надо.
C++
1
2
3
4
5
wchar_t token[100] = L"050609";
wchar_t buff[10];
wcsncpy(buff, token, 2);
buff[2] = L'\0';
int hTime = wcstol(buff, NULL, 10);
Yandex
Объявления
29.07.2015, 18:10     Перевод из wchar_t* в int (double)
Ответ Создать тему
Опции темы

Текущее время: 03:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru