Прочитать из юникод файла некий текст - 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;     
 }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с юникодом и файлами
  2. Объявление переменных: указатель на файл, строки str и s типа wchar_t, а также строка s типа char
  3. Проверка на открытие файла unicode.txt в режиме чтения и с указанием кодировки UTF-8
  4. Проверка на успешное чтение из файла в строку s с помощью функции fgetws
  5. Преобразование строки s из типа wchar_t в тип char с использованием функции mbstowcs
  6. Вывод строки s на экран с помощью функции printf
  7. Завершение программы с возвратом 0, что означает успешное выполнение

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы