Форум программистов, компьютерный форум CyberForum.ru

Запись в .txt кириллицу - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
Sanyaslinkz
 Аватар для Sanyaslinkz
44 / 44 / 6
Регистрация: 12.03.2011
Сообщений: 100
23.09.2012, 12:43     Запись в .txt кириллицу #1
Есть файл.В него идет запись.Открываю файл там кодировка вместо нужного мне текста.Как настроить кириллицу?
setlocale(LC_CTYPE, ""); вроде служит только для вывода на консоль кириллицу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 12:43     Запись в .txt кириллицу
Посмотрите здесь:

C++ Запись 2мерного масива в txt
C++ запись данных в txt колонками
Запись путей файлов в *.txt файл. C++
Запись текста в файл txt C++
C++ запись в txt и поиск
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2012, 13:12     Запись в .txt кириллицу #2
Можно это попробовать:
C++
1
2
3
4
5
6
7
 #include <windows.h>
    
     // записать в начале функции main 
     // две следующих строки 
     
       SetConsoleCP(1251);
       SetConsoleOutputCP(1251);
В свойствах консоли выбрать шрифт: Lucida Console.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
23.09.2012, 13:13     Запись в .txt кириллицу #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <fstream>
#include <locale>
 
int main()
{
    std::ofstream out("E:\\1.txt");
    out.imbue(std::locale(""));
    out << "привет";
    out.close();
}
Sanyaslinkz
 Аватар для Sanyaslinkz
44 / 44 / 6
Регистрация: 12.03.2011
Сообщений: 100
23.09.2012, 14:20  [ТС]     Запись в .txt кириллицу #4
что то не помогает. вот код
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
using namespace std;
 
struct krolik {char pol; int vozrast; double massa;};
 
int main(void)
{ 
    setlocale(LC_CTYPE, "");
 
    FILE *f;
    krolik dat; 
    int n;
    char s[20];
    cin.getline(s, 20);
    f=fopen("d:\MyFile.txt", "wb");
    cout << "Сколько кроликов? "; cin >> n;
    for (int i=1; i<=n; i++)
        {   
            cout << "Какой пол у " << i << "го кролика? "; cin >> dat.pol;
            cout << "Сколько лет  " << i << "му кролика? "; cin >> dat.vozrast;
            cout << "Какой вес у " << i << "го кролика? "; cin >> dat.massa;
            fwrite(&dat, sizeof(krolik), 1, f);
        }
    fclose(f);
 
    return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2012, 15:03     Запись в .txt кириллицу #5
Цитата Сообщение от Sanyaslinkz Посмотреть сообщение
что то не помогает
Что не помогает? Где в коде предложения из 2 и 3 поста?
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.09.2012, 15:05     Запись в .txt кириллицу #6
А юникод это не труЪ, да?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2012, 15:56     Запись в .txt кириллицу #7
Чтобы в файле был текст, пишите в файл в текстовом режиме.
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
27
28
29
30
31
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
 
struct krolik {char pol; int vozrast; double massa;};
 
int main(void)
{ 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    ofstream f("d:\\MyFile.txt");
    krolik dat; 
    int n;
    //char s[20];
    //cin.getline(s, 20);
    
    cout << "Сколько кроликов? "; cin >> n;
    for (int i=1; i<=n; i++)
        {   
            cout << "Какой пол у " << i << "го кролика? "; cin >> dat.pol;
            cout << "Сколько лет  " << i << "му кролика? "; cin >> dat.vozrast;
            cout << "Какой вес у " << i << "го кролика? "; cin >> dat.massa;
            f << dat.pol << " " << dat.vozrast << " " << dat.massa << endl;
        }
    f.close();
    
    system("pause");
    return 0;
}
Sanyaslinkz
 Аватар для Sanyaslinkz
44 / 44 / 6
Регистрация: 12.03.2011
Сообщений: 100
23.09.2012, 18:13  [ТС]     Запись в .txt кириллицу #8
alsav22, в вашем коде у меня при вводе символов на консоль не воспринимало русские символы, сразу переводило в кодировку. я поменял SetConsoleCP(1251); на SetConsoleCP(1049); и т.д, все заработало, НО в .txt русские не сохраняет , а сохраняет кодировкой в отличии от английских символов. К примеру какой пол у кролика я ввожу Ж , то в файле свой символ какой-то, а если F то F и записывает
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
23.09.2012, 18:46     Запись в .txt кириллицу #9
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
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
 
struct krolik {char pol[2]; int vozrast; double massa;};
 
int main(void)
{
    setlocale(LC_CTYPE, "Russian");
    ofstream f("out.txt");
    krolik dat;
    int n;
    cout << "Сколько кроликов? "; cin >> n;
    for (int i=0; i<n; i++)
        {
            cout << "Какой пол у " << i << "го кролика? "; cin >> dat.pol;
            cout << "Сколько лет  " << i << "му кролика? "; cin >> dat.vozrast;
            cout << "Какой вес у " << i << "го кролика? "; cin >> dat.massa;
            OemToCharA(dat.pol, dat.pol);
            f << dat.pol << " " << dat.vozrast << " " << dat.massa << endl;
        }
    f.close();
    return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2012, 19:47     Запись в .txt кириллицу #10
Цитата Сообщение от Sanyaslinkz Посмотреть сообщение
alsav22, в вашем коде у меня при вводе символов на консоль не воспринимало русские символы, сразу переводило в кодировку.
Цитата Сообщение от alsav22 Посмотреть сообщение
В свойствах консоли выбрать шрифт: Lucida Console.
А это сделали? ОС какая?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2012, 12:27     Запись в .txt кириллицу
Еще ссылки по теме:

C++ Чтение/запись из/в файл .txt
Запись переменной в .txt C++
Запись данных в файл txt C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
24.09.2012, 12:27     Запись в .txt кириллицу #11
Sanyaslinkz, посомтри сюда пригодится
Кодировка файла
Создание файла в UTF-8 кодировке
Yandex
Объявления
24.09.2012, 12:27     Запись в .txt кириллицу
Ответ Создать тему
Опции темы

Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru