Чтение кириллицы из консоли - C (СИ)

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

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

Всем добрый вечер. Собственно проблема: есть функция считывающая текст либо из файла, либо из консоли. Причем из файла кириллицу нормально считывает, а из консоли нет.
void sgets(char *str, int length, FILE *file)
{
    fgets(str, length, file);
    str[strlen(str)-1] = '\0';
}
setlocale(LC_ALL, "Russian") включен. Как можно починить?

Решение задачи: «Чтение кириллицы из консоли»

textual
Листинг программы
    // Чтение строки
void sgets(char *str, int length, FILE *file)
{
    fgets(str, length, file);
    str[strlen(str)-1] = '\0';
}

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

  1. В функции sgets происходит считывание строки из файла или консоли в буфер, представленный переменной str.
  2. Длина строки определяется параметром length.
  3. Функция fgets используется для чтения строки в буфер.
  4. Последний символ новой строки в буфере заменяется на символ 0 (NUL) для обозначения конца строки.
  5. Буфер str может быть динамически выделен с использованием оператора new или статически выделен в куче.

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


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

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

8   голосов , оценка 4.375 из 5