Прочитать из юникод файла некий текст - C (СИ)
Формулировка задачи:
Все добрый день. Собственно есть цель прочитать из юникод файла некий текст.
Делаю такНо вместо строки получаю первую букву слова и далее кракозябры. Помню что юникод вещь динамическая и что символ может быть немного больше одного байта. И так почему глючит подобная запись? Какие ошибки были сделаны мной? Очень важно указать на все ошибки т.к. действительно хочу освоить все тонкости языка. Язык программирования именно АНСИ Си. Операционка - окна, если что.
Если уже была такая тема - не пинайте сильно. Не нашел поиск по форуму.
Заранее спасибо за ответы!
wchar_t string[10]; FILE *f; f=fopen("test.txt", "rb"); fgetws(string, 100, f); printf("%s\n", string);
На правах UP
Решение задачи: «Прочитать из юникод файла некий текст»
textual
Листинг программы
#include <stdio.h> #include <locale.h> #include <wchar.h> int main() { FILE *f; wchar_t str[100], s[100]; //memset(str, '\0', 100); if((f=fopen("unicode.txt", "rt, ccs=UTF-8"))==NULL) { perror("Error"); } fgetws(s, sizeof(s), f); mbstowcs(str, s, 100); printf("%ls", s); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с юникодом и файлами
- Объявление переменных: указатель на файл, строки str и s типа wchar_t, а также строка s типа char
- Проверка на открытие файла
unicode.txt
в режиме чтения и с указанием кодировки UTF-8 - Проверка на успешное чтение из файла в строку s с помощью функции fgetws
- Преобразование строки s из типа wchar_t в тип char с использованием функции mbstowcs
- Вывод строки s на экран с помощью функции printf
- Завершение программы с возвратом 0, что означает успешное выполнение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д