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

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

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

Хочу написать программу, записывающую в файл введенный с консоли текст на русском. Проблема в том, что файл создается в одной кодировке, а текст записывается в другой. Текст сохраняю в массиве. Пишу в массив, например, "Привет", Вывожу массив на экран - всё норм. Сохраняю массив в файл - ЇаЁўҐв.
Листинг программы
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <math.h>
  4. #include <conio.h>
  5. #include <stdlib.h>
  6. void main()
  7. {
  8. setlocale(LC_CTYPE,"ru");
  9. char filename[100];
  10. FILE *fp=fopen("code.txt", "w");
  11. if (fp!=NULL) // Если файл успешно открыт
  12. {
  13. char stroka[255];
  14. gets(stroka);
  15. printf("%s",stroka);
  16. fprintf(fp, "%s", stroka);
  17. }
  18. else printf("Не существует такого файла!");
  19.  
  20. int fclose (FILE * fp);
  21. getch();
  22. }
Прошу исправить ошибки, если есть, и выпрямить кодировку в коде. Заранее благодарен

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

textual
Листинг программы
  1. #include <windows.h>
  2.  
  3. int main()
  4. {
  5.   SetConsoleCP(1251);
  6.   SetConsoleOutputCP(1251);
  7.   ...
  8. }

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

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

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

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


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

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

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы