Запись в файл русского текста, непонятная кодировка - C (СИ)

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

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

Хочу написать программу, записывающую в файл введенный с консоли текст на русском. Проблема в том, что файл создается в одной кодировке, а текст записывается в другой. Текст сохраняю в массиве. Пишу в массив, например, "Привет", Вывожу массив на экран - всё норм. Сохраняю массив в файл - ЇаЁўҐв.
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
 
void main()
{
setlocale(LC_CTYPE,"ru");
char filename[100];
FILE *fp=fopen("code.txt", "w");
if (fp!=NULL) //   Если файл успешно открыт
    {
    char stroka[255];
    gets(stroka);
    printf("%s",stroka);
 
    fprintf(fp, "%s", stroka);
 
    }
else printf("Не существует такого файла!");

int fclose (FILE * fp);
getch();
}
Прошу исправить ошибки, если есть, и выпрямить кодировку в коде. Заранее благодарен

Решение задачи: «Запись в файл русского текста, непонятная кодировка»

textual
Листинг программы
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}

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

В этом коде на языке C выполняется следующие действия:

  1. #include Включается библиотека Windows, которая содержит функции для работы с Windows API.
  2. int main() Функция main() является точкой входа в программу.
  3. SetConsoleCP(1251); Устанавливается кодировка консоли на 1251. Это кодировка, используемая в Windows для представления русских символов.
  4. SetConsoleOutputCP(1251); Устанавливается кодировка вывода консоли на 1251.
  5. ... (пропущено) Обратите внимание, что код не содержит функций для записи текста в файл. Если вам нужно записать русский текст в файл, вам нужно будет добавить соответствующий код.

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


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

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

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