Прочитать кириллицу из файла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу понять, почему не читает русские символы. Суть задания: извлечь из текстового файла, например data.txt, с русским текстом все гласные, а затем их вывести на экран. С латинскими нормально работает, а русские никак...
int main (void)
{int i = 0, num;
 FILE *fp;
 char c, *filename, buffer[512];
 printf("Vvedite imia fajla\n\n ");
 filename = GetString();
 fp = fopen(filename, "r"); 
 if (!fp)
   {puts("\nFajl ne najden");
    getch();
    exit(1);
   }
 while ((c = fgetc(fp)) != EOF)
   {if (c == 224 ||
        c == 229 ||
        c == 232 ||
        c == 238 ||
        c == 243 ||
        c == 251 ||
        c == 253 ||
        c == 254 ||
        c == 255 ||
        c == 184 ||
        c == 44)        
     {buffer[i] = c;
      i++;
     }
   }
 num = i; 
 printf("\nV fajle najdeny sledujuschie glasnye:\n");
 
 for (i=0; i < num; i++)
  printf ("%c", buffer[i]);
 fclose(fp);
 
 free(filename);
 getch();
 return 0;
}

Решение задачи: «Прочитать кириллицу из файла»

textual
Листинг программы
setlocale(LC_ALL,".1251")

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

  1. Устанавливается локальная настройка для работы с русским языком (LC_ALL).
  2. Файл, из которого необходимо прочитать данные, не указан.
  3. В функции setlocale() первый аргумент — это тип локали (LC_ALL), второй — это код локали (.1251).
  4. Код локали устанавливает, что вводимые и выводимые символы должны быть интерпретированы как символы кодировки CP-1251 (кириллица).
  5. Не указаны переменные, в которые необходимо сохранить данные из файла.
  6. Не указан сам файл, который необходимо открыть для чтения.
  7. Не указаны действия, которые необходимо выполнить с данными после их чтения из файла.
  8. Не указаны действия, которые необходимо выполнить с файлом после его закрытия.
  9. В функции setlocale() первый аргумент — это тип локали (LC_ALL), второй — это код локали (.1251).
  10. Код локали устанавливает, что вводимые и выводимые символы должны быть интерпретированы как символы кодировки CP-1251 (кириллица).

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


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

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

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