0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
1

Проблемы с кодировкой при выводе данных

28.01.2013, 17:32. Показов 1457. Ответов 2
Метки нет (Все метки)

Пользуюсь хрюшей и VS 2008
Программа 1
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 <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    char ch='x';
    int j=77;
    double d=6.02;
    string str1="Kafka";
    string str2="Proust";
    ofstream outfile("fdata.txt");
    outfile<<ch
           <<' '
           <<j
           <<' '
           <<d
           <<' '
           <<str1
           <<' '
           <<str2;
cout<<"Файл записан!\n";
return 0;
}
Программа 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    char ch;
    int j;
    double d;
    string str1;
    string str2;
    ifstream infile("fdata.txt");
    infile>>ch>>j>>d>>str1>>str2;
    cout<<"1:"<<ch<<endl
        <<"2:"<<j<<endl
        <<"3:"<<d<<endl
        <<"4:"<<str1<<endl
        <<"5:"<<str2<<endl;
cout<<"Вывод информации с файлf завершён!\n";
return 0;
}
Вот результат 2-й программы в консоле:
1:K
2:1242200
3:3.04544e-308
4:
5:
Вывод информации с файл завершён!
Для продолжения нажмите любую клавишу . . .


добавление строки
C++
1
infile.imbue(locale(".1251"));
не помогло.

1 программа работает как надо,её суть состоит в том,чтобы записать на fdata.txt данные, 4-х разных типов,прописанных в программе,она их туда закидывает,проверял,всё чётко,НО....
2 программа работает плохо. Она должна была считать данные из файла,который был создан в 1-ой программе,но,может он и открывает его,но считывает полную ересь,неизвестные данные,взятые из ни от куда,причём строковые переменные он вообще не выводит,а первый символ типа char при каждой компиляции выводит ЛЮБОЙ символ. Я подозреваю,что проблема с потоком и в него вмешиваются посторонние данные,но и с другой стороны это не логично,т.к. есть чёткие функции,а если они туго работают,то и смысла бы в них не было,к тому же данные типа int и double он выводит тоже другие,но они статичны при каждой компиляции,думаю,что просто банальная проблема в кодировке при выводе из файла или ХЗ что.Прошу помочь ибо не знаю,что делать!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2013, 17:32
Ответы с готовыми решениями:

Проблемы с кодировкой при выводе данных
у меня такая же проблема, как в этой теме https://www.cyberforum.ru/php-database/thread154723.html...

Проблемы с кодировкой при выводе на веб-страницу
Помогите мне! Когда я вывожу на веб страницу данные из БД то вместо русских символов появляются...

метод POST, кошмар с кодировкой при выводе данных
отправляю с сайта форму заказа, обрабатываю скриптом. после нажатия кнопки отправить данные...

Проблемы с кодировкой при получении данных из БД
Приветствую. Проблема в следующем: есть БД SQLite3, в ней таблица, которая заполнена значениями на...

2
22 / 8 / 2
Регистрация: 06.01.2013
Сообщений: 113
28.01.2013, 17:46 2
ЭХХХХ
только что прогнал твои программы на Visual C++ 2010 на Windows 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main1()
{
    setlocale(LC_ALL,"Russian");
    char ch='x';
    int j=77;
    double d=6.02;
    string str1="Kafka";
    string str2="Proust";
    ofstream outfile("fdata.txt");
    outfile<<ch
           <<' '
           <<j
           <<' '
           <<d
           <<' '
           <<str1
           <<' '
           <<str2;
cout<<"Файл записан!\n";
return 0;
}
 
int main2()
{
    setlocale(LC_ALL,"Russian");
    char ch;
    int j;
    double d;
    string str1;
    string str2;
    ifstream infile("fdata.txt");
    infile>>ch>>j>>d>>str1>>str2;
    cout<<"1:"<<ch<<endl
        <<"2:"<<j<<endl
        <<"3:"<<d<<endl
        <<"4:"<<str1<<endl
        <<"5:"<<str2<<endl;
cout<<"Вывод информации с файлf завершён!\n";
return 0;
}
 
int main()
{
    main1();
    main2();
}
выводит

1:x
2:77
3:6.02
4:Kafka
5:Proust

Problem?
Запускал из PowerShell. Я думаю, что, возможно, проблема в том, что у консоли своя кодировка. То есть, в файл всё может записываться правильно, и читаться может правильно. Просто напросто может кодировка файла и консоли не совпадать; у виндоконсоли по умолчанию кодировка cp 866. А не 1251. И она, как и 1251 считается локальной и правильной для рус. языка, да...
А вообще... Да кто его знает??? @_@ @_@ @_@
0
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
28.01.2013, 17:59  [ТС] 3
Ка бы это по-идиотски не звучало,но проблема состояла в шрифте консоли(нужно установить lucida console),нужно было его тупо поменять и всё стало работать как надо....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2013, 17:59
Помогаю со студенческими работами здесь

Проблемы с кодировкой при отправке данных в БД
Добрый день. Есть форма на сайте для отправки сообщения (в БД). Идёт так: Главная страница -&gt; AJAX...

Проблемы с кодировкой при переносе данных из Access в Oracle
Помогите please. Есть данные в таблицах Access (XP). Нужно их копировать в Оракл. Создал линки...

Проблемы при выводе данных из БД в dataGridView
Всем доброго времени! Есть приложение по выводу информации данных из БД (MSSQL) в...

Проблемы с кодировкой при посте
Иногда получается вот такое http://forum.1-info.ru/messages.php?id=144791#144791 Встречал...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru