Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
RAFA91
Заблокирован
1

Записать информацию в файл в правильной кодировке

03.05.2015, 15:46. Просмотров 327. Ответов 8
Метки нет (Все метки)

Всем доброго дня !!!

Пытаюсь в файл Vasa.txt записать Привет, Лопух! , а получаю ЏаЁўҐв, ‹®Їге!

Подскажите пожалуйста в чем может быть проблема ?

пишу в Microsoft Visual C++ 6.0


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
32
33
34
35
36
37
38
39
40
41
#include<iostream>
#include<windows.h>
#include<conio.h>
#include <fstream>
 
using namespace std;
 
char bufRus[256];
 
char* Rus(const char* text) 
 
{
     
    CharToOem(text, bufRus);
    
    return bufRus;
    
  }
      
      
 
int main()  
 
{
    ofstream fout("Vasa.txt");
 
    
    cout << Rus("Привет, Лопух!")<< endl;
 
    fout << Rus("Привет, Лопух!")<< endl;
 
    fout.close();
 
    fout.clear();
 
    //system("pause");
 
    getch();
    return 0;
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2015, 15:46
Ответы с готовыми решениями:

Записать информацию в файл в нужной кодировке
Имеется строка типа wchar_t, нужно записать её в текстовый файл, чтобы можно...

Как записать файл в кодировке utf-8?
Вообщет задача такая, нужно файл записать в кодировке utf-8 или unicode и нужно...

Ввести и записать в файл информацию о книгах
Ввести и записать в файл информацию о книгах по языку С++:порядковый...

Записать всю информацию из файла в другой файл
в файл нужно записывать информацию , которая хранится после чисел -1 -1 55,...

Ввести и записать в файл информацию о репертуаре Большого театра
напишите пожалуйста код на си++ заранее спасибо!

8
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
03.05.2015, 15:48 2
При записи в файл зачем перекодируешь?
0
RAFA91
Заблокирован
03.05.2015, 15:56  [ТС] 3
неужели надо было так (((

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
32
33
34
35
36
37
38
39
#include<iostream>
#include<windows.h>
#include<conio.h>
#include <fstream>
 
using namespace std;
 
char bufRus[256];
 
char* Rus(const char* text) 
 
{
     
    CharToOem(text, bufRus);
    
    return bufRus;
    
  }
      
int main()  
 
{
    ofstream fout("Vasa.txt");
 
    
    cout << Rus("Привет, Лопух!")<< endl;
 
    fout << "Привет, Лопух!"<< endl;
 
    fout.close();
 
    fout.clear();
 
    //system("pause");
 
    getch();
    return 0;
    
}
0
Gant26
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 7
03.05.2015, 16:05 4
поробуй в int main () добавить строку
C++
1
setlocale (" ",0);
0
RAFA91
Заблокирован
04.05.2015, 12:19  [ТС] 5
вроде так работает. даже не знаю почему.

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
#include<iostream>
 
#include<conio.h>
#include <fstream>
 
using namespace std;
 
 
      
 
int main()  
 
{
    ofstream fout("Vasa.txt");
 
    
    
    fout << "Привет, Лопух!"<< endl;
 
    fout.close();
 
    fout.clear();
 
   // system("pause");
 
    getch();
    
    return 0;
    
}
Добавлено через 20 часов 3 минуты
с помощью cin.getline(a,80); в массив a[80]; записую строку русскими буквами.

потом массив a[80]; переписую в файл Vasa.txt

в файле Vasa.txt получаю строку из произвольных символов.

подскажите пожалуйста как можна устранить этот недостаток ?

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<iostream>
#include<windows.h>
#include<conio.h>
#include <fstream>
 
using namespace std;
 
char bufRus[256];
 
char* Rus(const char* text) 
 
{
     
    CharToOem(text, bufRus);
 
    cout << " ******* "<< endl;
    
    return bufRus;
    
  }
      
      
 
int main()  
 
{
    char a[80];
 
    cin.getline(a,80);
 
    ofstream fout("Vasa.txt");
 
    
    cout << a << endl;
 
    fout << a << endl;
 
    fout.close();
 
    fout.clear();
 
    //system("pause");
 
    getch();
    return 0;
    
}
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
04.05.2015, 14:59 6
Введённую строку нужно перекодировать OemToChar(), чтобы она была в 1251.
0
RAFA91
Заблокирован
04.05.2015, 15:08  [ТС] 7
написать на подобе этого нужно ?

C++
1
2
3
4
5
6
7
8
9
10
11
char* Rus(const char* text) 
 
{
     
    CharToOem(text, bufRus);
 
    cout << " ******* "<< endl;
    
    return bufRus;
    
  }
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
04.05.2015, 16:56 8
Достаточно одной строки:
C++
1
2
3
char s[100];
cin >> s;
OemToCharA(s, s);
0
RAFA91
Заблокирован
04.05.2015, 17:19  [ТС] 9
nmcf большое Вам спасибо!!!

cin плохо работает с пробелами поэтому малость изменил код

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<iostream>
#include<windows.h>
#include<conio.h>
#include <fstream>
 
using namespace std;
 
char bufRus[256];
 
char* Rus(const char* text) 
 
{
     
    CharToOem(text, bufRus);
 
    cout << " ******* "<< endl;
    
    return bufRus;
    
  }
      
      
 
int main()  
 
{
    char a[80];
 
    cin.getline(a,80);
 
    OemToCharA(a, a);
    
 
 
 
    ofstream fout("Vasa.txt");
 
    
    cout << Rus(a) << endl;
 
    fout << a << endl;
 
    fout.close();
 
    fout.clear();
 
    system("pause");
 
    return 0;
    
}
0
04.05.2015, 17:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2015, 17:19

Структуры. Ввести и записать в файл информацию о расписании занятий 11 класса
ввести и записать в файл информацию о расписании занятий 11 класса (любые...

Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него...

упорядочить выбранную информацию по возврастанию номеров телефона, а затем записать в файл
В исходном файле записана информация об абонентах телефонной станции: фио...


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

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

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