Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
the_TOP
0 / 0 / 1
Регистрация: 08.06.2014
Сообщений: 18
#1

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

08.06.2014, 21:00. Просмотров 1051. Ответов 8
Метки нет (Все метки)

Хочу написать программу, записывающую в файл введенный с консоли текст на русском. Проблема в том, что файл создается в одной кодировке, а текст записывается в другой. Текст сохраняю в массиве. Пишу в массив, например, "Привет", Вывожу массив на экран - всё норм. Сохраняю массив в файл - ЇаЁўҐв.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#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();
}
Прошу исправить ошибки, если есть, и выпрямить кодировку в коде. Заранее благодарен
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 21:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запись в файл русского текста, непонятная кодировка (C (СИ)):

Ввод русского текста из консоли в файл (проблема с кодировкой) - C (СИ)
Здравствуйте! Стоит казалось бы тривиальная задача - считать из консоли русский текст, записать его в файл, затем из этого файла данный...

Непонятная работа fgets и/или fwrite(запись в бинарный файл) - C (СИ)
Не могу разобраться, в чем дело: Программа читает данные из файла &quot;data.txt&quot;(во вложении), записывает их в структуру, из структуры...

Запись текста в файл\вывод его на экран\сохранение\считывание информации из файла - C (СИ)
Ввести текст произвольного содержания в память ПЭВМ. Вывести на экран. Записать текст в файл. После записи текста в файл информация...

Не правильно работает функция GetSubstring для русского текста - C (СИ)
Не правильно работает функция GetSubstring. Подскажи пожалуйста в чём причина. #include &lt;stdio.h&gt; #include &lt;Windows.h&gt; #include...

Составить алгоритм, подсчитывающий для заданного текста количество вхождений каждой буквы русского алфавита - C (СИ)
Составить алгоритм, подсчитывающий для заданного текста количество вхождений каждой буквы русского алфавита. Help #include&lt;stdio.h&gt; ...

Неверная кодировка текста - C (СИ)
Уверен, что эта тему уже поднималась ранее. Собственно переписываю прогу с С++ на Си, и тут столкнулся с абракадаброй в сообщениях...

8
zer0mail
2447 / 2081 / 205
Регистрация: 03.07.2012
Сообщений: 7,563
Записей в блоге: 1
08.06.2014, 21:38 #2
http://zelserg.livejournal.com/2117.html
0
the_TOP
0 / 0 / 1
Регистрация: 08.06.2014
Сообщений: 18
08.06.2014, 21:57  [ТС] #3
Добавлено через 1 минуту
Ты меня, конечно, извини, но мне нужен готовый исходник. Мне просто некогда разбираться в переключении между кодировками, и нужно всего лишь, что бы всё работало.
0
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
08.06.2014, 22:04 #4
правой кнопкой по заголовку консоли\свойства\шрифт\Luicida Console
0
the_TOP
0 / 0 / 1
Регистрация: 08.06.2014
Сообщений: 18
08.06.2014, 22:11  [ТС] #5
Прикол в том, что в консоли как раз всё нормально отображается. Мусор записывается в сам файл code.txt
0
encodeMind
1 / 1 / 0
Регистрация: 05.03.2014
Сообщений: 27
08.06.2014, 22:12 #6
Такая же проблема.
0
zer0mail
08.06.2014, 22:26
  #7

Не по теме:

Если такой занятый, жди...

0
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.06.2014, 22:26 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
1
the_TOP
0 / 0 / 1
Регистрация: 08.06.2014
Сообщений: 18
08.06.2014, 22:43  [ТС] #9
Спасибо, выручил
0
08.06.2014, 22:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2014, 22:43
Привет! Вот еще темы с ответами:

Кодировка текста путем сдвига символов - C (СИ)
#include &lt;stdio.h&gt; char code(char *c, int n) { int i; for (i=0; c!=0; i++) { c=c+n; if (c&gt;'z') c=c-'z'+'a'-1; if...

Неверная кодировка при сохранении данных в файл - C (СИ)
Здравствуйте, подскажите пожалуйста, где в функциях save() и openf() может крыться ошибка? Задание представляет собой базу данных,...

Почему не создаётся файл и не производится запись в пустой файл? - C (СИ)
Помогите разобраться почему не создаётся файл и не производится запись в пустой файл, в дебагере вроде как всё нормально, указатели и...

Дан текстовый файл. Вывести в другой файл самые длинные слова текста - C (СИ)
Дан текстовый файл. Вывести в другой файл самые длинные слова текста (с учетом знаков препинания, расположенных в начале и в конце слов)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru