Работа с русскими символами - C (СИ) (79768)
Формулировка задачи:
Проблема: стандартные сишные библиотечные функции работают с однобайтными кодировками.
Есть программа, требующая обработки русских строк и использования таких функций. Данные могут вводиться как из командной строки, так и считываться из файла в формате txt. Общий вопрос, как перевести программу на обработку русских символов.
Первый урожай проблем:
мааааааленькая программка:
Запускаю бат файлом
prog.exe >> Prog_results.txt
Получаем: Sym:
Ничего не печатает. Хотя по справке MSDN
int wprintf(
const wchar_t *format [,
argument].
Параметры:
format - Format control. %[flags] [width] [.precision] [{h | l | ll | I | I32 | I64}]type
argument - Optional arguments.
locale - The locale to use.
type - C - это int or wint_t
When used with printf functions, specifies a wide character; when used with wprintf functions, specifies a single-byte character.
#include <stdio.h> #include <stdlib.h> #include <wchar.h> int main( int argc, wchar_t *argv[] ) { wchar_t c = 'ы'; printf( "Sym: %C\n", c ); return 0; }
Решение задачи: «Работа с русскими символами»
textual
Листинг программы
wprintf( L"Sym: %c\n", c );
Объяснение кода листинга программы
В данном коде происходит вывод символа на консоль с помощью функции wprintf. Список элементов кода:
- wprintf - функция для вывода на консоль.
- L
Sym: %c\n
- строка-шаблон для вывода. В данном случае выводится символ c. Значение символа будет зависеть от контекста, в котором используется.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д