Запись в файл русского текста, непонятная кодировка - 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 выполняется следующие действия:
- #include
Включается библиотека Windows, которая содержит функции для работы с Windows API. - int main() Функция main() является точкой входа в программу.
- SetConsoleCP(1251); Устанавливается кодировка консоли на 1251. Это кодировка, используемая в Windows для представления русских символов.
- SetConsoleOutputCP(1251); Устанавливается кодировка вывода консоли на 1251.
- ... (пропущено) Обратите внимание, что код не содержит функций для записи текста в файл. Если вам нужно записать русский текст в файл, вам нужно будет добавить соответствующий код.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д