Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/54: Рейтинг темы: голосов - 54, средняя оценка - 4.70
Айхрень...
 Аватар для Paulie
306 / 176 / 7
Регистрация: 02.06.2009
Сообщений: 1,077

sprintf() и wchar_t

09.04.2010, 08:50. Показов 10206. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется структура с параметрами wchar_t *, её параметры необходимо пропустить через sprintf. Вроде как уже выяснил, что функция может принимать в качестве аргументов юникод-строки, выглядит это всё следующим образом:

C++
1
2
3
4
5
6
7
char *formatstr = "%S\t%S\t%S";
char *res = (char *)malloc(1024);
 
sprintf_s(res, 1024, formatstr,
    dc->first,
    dc->second,
    dc->third);
в итоге функция возвращает -1, программа не вылетает, ошибок и исключений не генерирует.

если строку formatstr изменить на "%s\t%s\t%s", т.е. сделать маленькие s, то в результате выводятся только первая буква из полей структуры.

Как написано в доках, %s - если юзается в printf-подобных функциях, то означает char*, если %S юзается в printf, то означает wchar_t*, если в функциях wprintf - то наоборот...

Что-то я недопонял причины неработы...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2010, 08:50
Ответы с готовыми решениями:

'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead
ошибка: Error 1 error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable...

Вызов sprintf для типа не соответствующего формату
Какова реакция sprintf на передачу в нее значения с типом не соответствующим указанному в формате (UB не предлагать :) )? К примеру есть...

Преобразование wchar_t в int
Уважаемые коллеги. Подскажите пожалуйста, как преобразовать wchar_t в int и double. Исходно имеется следующее:wchar_t WndText; . . . ...

2
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
09.04.2010, 09:46
Возможно символы кривые есть - как в этом примере !

http://msdn.microsoft.com/en-u... 71%29.aspx
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// crt_swprintf.c
// wide character example
// also demonstrates swprintf returning error code
#include <stdio.h>
 
int main( void )
{
   wchar_t buf[100];
   int len = swprintf( buf, L"%s", L"Hello world" );
   printf( "wrote %d characters\n", len );
   len = swprintf( buf, L"%s", L"Hello\xffff world" );
   // swprintf fails because string contains WEOF (\xffff)
   printf( "wrote %d characters\n", len );
}
1
Айхрень...
 Аватар для Paulie
306 / 176 / 7
Регистрация: 02.06.2009
Сообщений: 1,077
09.04.2010, 12:24  [ТС]
Проблема, оказывается, была исключительно в кодировке русской, которую не переваривала программа и функции наподобие таких, как wcstombs_s, поставил setlocale(LC_ALL, "Russian"); и всё встало на сови места!

Интеренсо, можно ли как-то разобраться без этого setlocale? буду думать..

В этой фразе, значит, есть что-то важное )
If wcstombs encounters a wide character it cannot convert to a multibyte character, it returns –1 cast to type size_t and sets errno to EILSEQ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.04.2010, 12:24
Помогаю со студенческими работами здесь

wchar_t/char ->int
Привет всем! Вот у меня есть символ в переменной типа wchar_t='1', как можно 'перевести' в int? чтобы потом в перем. типа int было...

Перевод wchar_t to URL
У меня есть строка - &quot;qwe ПРИВЕТ&quot; конвертировать в URL: &quot;qwe&quot; - остаётся без изменений. &quot; &quot; - переводим через Format(...

преобразовать wchar_t [255] в const TCHAR []
столкнулся с проблемой разных типов строк... wchar_t path_msk; ....................................................... ...

Невозможно преобразовать параметр 1 из 'const char [3]' в 'const wchar_t *
void CprojectDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: добавьте свой код обработчика сообщений или...

Wchar_t и запись в файл
Здравствуйте. Выполняю запрос в SQLite, с помощью sqlite3_column_text16 получаю данные в wchar_t, но записать данные в файл не получается....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru