| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > vector с Unicode |
| Автор: wallstreet 6.12.2011, 11:14 | ||
| Всем доброго дня. Принимаю данные Unicode в массив, потом пытаюсь добавить в вектор, но если объявить массив как WCHAR и тип данных вектора как WCHAR, то происходит ошибка С2664 (Error 2 error C2664: 'void std::vector<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'WCHAR [200]' to 'WCHAR &&' c:\users\a.gursky\documents\visual studio 2010\projects\ddeserver\ddeserver\ddemlfn.cpp 165)
Подскажите как можно исправить ошибку? |
| Автор: bsa 6.12.2011, 11:42 |
| wallstreet, в строке 8 у тебя происходит проверка, которая всегда верна. Так как массив ВСЕГДА не равен NULL. А в строке 10 ты пытаешь добавить к вектору не один элемент, а целый массив. Естественно, что push_back такому не обучен. Воспользуйся vector::insert - он умеет работать с итераторами и указателями (читай массивами). |
| Автор: wallstreet 6.12.2011, 12:24 | ||
Вот так вот работает
|
| Автор: bsa 6.12.2011, 12:33 |
| wallstreet, в первой строчке нового кода условие всегда истинно. Оно не отличается от предыдущего варианта. Думаю, тебе стоит хорошенько подумать о том, зачем условие вообще нужно. |
| Автор: wallstreet 6.12.2011, 13:15 |
| Да, конечно. Кстати не могу найти функцию определяющую размерность массива. Т.е. что-то вроде strlen() для строк. Есть ли такая? |
| Автор: bsa 6.12.2011, 13:36 |
| проблема не в массиве, а в его типе. для юникодовых строк следует использовать wcslen. |
| Автор: Andrey44 6.12.2011, 15:35 | ||||
|
| Автор: volatile 7.12.2011, 00:03 |
Здесь он будет шорты в десятичном виде записывать в файл. |
| Автор: wallstreet 7.12.2011, 15:21 | ||
Что такое шорты?)) |
| Автор: bsa 7.12.2011, 15:32 |
| short int |
| Автор: wallstreet 8.12.2011, 18:22 | ||
что бы выводилась дата в 16 ричном виде правильным ли будет такой вариант?
|
| Автор: bsa 8.12.2011, 20:21 |
| wallstreet, тебе религия документацию читать запрещает? |
| Автор: wallstreet 8.12.2011, 23:31 | ||
Вот блин ошибся, перепутал все на свете. ХОтел вот так вот вывести:
Но вопрос в скорее в другом. Правильно ли вобоще использовать данные модификаторы вывода чисел? Или есть более универсальные функции? |
| Автор: bsa 8.12.2011, 23:39 |
| правильно. Вот только я бы тебе рекомендовал явно преобразовать *it в целочисленный тип. А то однажды может получиться, что будут выводиться символы вместо их кодов. |
| Автор: Alexeis 9.12.2011, 09:01 |
| Не знаю зачем точно автор использует std::vector<WCHAR> , возможно на это есть свои причины, но вдруг он не знает про std::wstring ? |
| Автор: bsa 9.12.2011, 11:14 | ||
может потому, что поток тоже не юникодный? |
| Автор: wallstreet 10.12.2011, 14:04 |
| Я буду принимать данные в формате xltable и потом уже их парсить. |