Чтение кириллицы из консоли - C (СИ)
Формулировка задачи:
Всем добрый вечер. Собственно проблема: есть функция считывающая текст либо из файла, либо из консоли. Причем из файла кириллицу нормально считывает, а из консоли нет.
setlocale(LC_ALL, "Russian") включен. Как можно починить?
void sgets(char *str, int length, FILE *file) { fgets(str, length, file); str[strlen(str)-1] = '\0'; }
Решение задачи: «Чтение кириллицы из консоли»
textual
Листинг программы
// Чтение строки void sgets(char *str, int length, FILE *file) { fgets(str, length, file); str[strlen(str)-1] = '\0'; }
Объяснение кода листинга программы
- В функции
sgets
происходит считывание строки из файла или консоли в буфер, представленный переменнойstr
. - Длина строки определяется параметром
length
. - Функция
fgets
используется для чтения строки в буфер. - Последний символ новой строки в буфере заменяется на символ
0
(NUL) для обозначения конца строки. - Буфер
str
может быть динамически выделен с использованием оператораnew
или статически выделен в куче.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д