Прочитать кириллицу из файла - 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")
Объяснение кода листинга программы
- Устанавливается локальная настройка для работы с русским языком (LC_ALL).
- Файл, из которого необходимо прочитать данные, не указан.
- В функции setlocale() первый аргумент — это тип локали (LC_ALL), второй — это код локали (
.1251
). - Код локали устанавливает, что вводимые и выводимые символы должны быть интерпретированы как символы кодировки CP-1251 (кириллица).
- Не указаны переменные, в которые необходимо сохранить данные из файла.
- Не указан сам файл, который необходимо открыть для чтения.
- Не указаны действия, которые необходимо выполнить с данными после их чтения из файла.
- Не указаны действия, которые необходимо выполнить с файлом после его закрытия.
- В функции setlocale() первый аргумент — это тип локали (LC_ALL), второй — это код локали (
.1251
). - Код локали устанавливает, что вводимые и выводимые символы должны быть интерпретированы как символы кодировки CP-1251 (кириллица).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д