Запись в файл русского текста, непонятная кодировка - 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.
- ... (пропущено) Обратите внимание, что код не содержит функций для записи текста в файл. Если вам нужно записать русский текст в файл, вам нужно будет добавить соответствующий код.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д