|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - swprintf (Linux) - неправильная работа |
|
C/C++ - swprintf (Linux) - неправильная работа
|
Новый участник Сообщения: 29 |
Профиль | Отправить PM | Цитировать Добрый день
Не могу добиться правильной работы swprintf под Linux #include <stdio.h> #include <wchar.h> #include <string.h> int main() { FILE *fileOut; wchar_t wcBuffer[264]; char *cBuffer = "string"; printf("\n\tTest module (swprinf)\n"); if ((fileOut = fopen("testfile.txt", "wb")) == NULL) { printf("\tCan't open file \"testfile.txt\""); return -1; } // Case 1 memset(wcBuffer, 0x00, sizeof(wcBuffer)); #ifdef __linux swprintf(wcBuffer, 260, L"Test_string_1"); #else swprintf(wcBuffer, L"Test_string_1"); #endif fwrite(wcBuffer, sizeof(wcBuffer), 1, fileOut); // Case 2 memset(wcBuffer, 0x00, sizeof(wcBuffer)); #ifdef __linux swprintf(wcBuffer, 260, L"Test_%S_2", cBuffer); #else swprintf(wcBuffer, L"Test_%S_2", cBuffer); #endif fwrite(wcBuffer, sizeof(wcBuffer), 1, fileOut); fclose(fileOut); return 0; } 1. Case 2. Вместо Test_string_2 в файле оказывается записан шаблон Test_%S_2 2. Case 1+2. После строки в файле оказывается "мусор" (под Windows идут аккуратные 0х00, как задумывалось) В чем моя ошибка? Спасибо PS. Компиляторы: Linux GCC 4.4.7 (3.x.x тоже испытывался), опции -Wall -fshort-wchar -O2 -m32 -s -U__STRICT_ANSI__ Windows MinGW |
|
Отправлено: 14:45, 28-05-2014 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:56, 30-05-2014 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 29
|
Профиль | Отправить PM | Цитировать Цитата pva:
wxhar_t то стал короче, в реализация wsprintf короче не стала. Нужно слинковать с соответвтующей функцией glibc, но я такой не нашёл (для 16-битного wchar_t) » Да, действительно, это и есть root cause. Но мне-то нужен 16-битный wchar_t... Похоже, что придется делать "костыли", а не хотелось бы... |
Последний раз редактировалось RedScorpio, 05-06-2014 в 13:15. Отправлено: 10:36, 02-06-2014 | #12 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Неправильная работа клавиатуры Asus K53S | vadim1000 | Ноутбуки | 8 | 10-09-2014 12:16 | |
[решено] Realtek ALC889 неправильная работа колонок 5.1 | Третий | Непонятные проблемы с Железом | 1 | 16-12-2011 07:55 | |
Службы - [решено] Неправильная работа центра обновлений | Solovey1985 | Microsoft Windows Vista | 3 | 08-08-2010 18:38 | |
[решено] Неправильная работа клавиатуры | dnaop | Лечение систем от вредоносных программ | 15 | 14-02-2009 15:24 | |
Linux. Работа с конслью | AnGel_of_Death | Общий по Linux | 11 | 29-07-2006 16:43 |
|