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

Кривое считывание с файла - C++

Восстановить пароль Регистрация
 
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
28.01.2013, 21:08     Кривое считывание с файла #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 <iostream>
#include <fstream>
#include <string>
#include <locale.h>
using namespace std;
#include <windows.h>
int main()
{
    setlocale(LC_ALL,"Russian");
    string str="Vremya-velikiy ychitel,no,yvi, ono ybivaet svoih ychenikov. Berlioz";
    ofstream outfile("TEST1.TXT");
    for(int j=0;j<str.size();j++)
        outfile.put(str[j]);
    cout<<"Файл записан!"<<endl;
    
    char ch;
    ifstream infile("TEST1.TXT");
    while(infile)
    {
        infile.get(ch);
        cout<<ch;
    }
    cout<<endl;
    return 0;
}

Записывает на Файл он то,что надо,а вот выводит с него уже полный бред. У меня вывело символ мелодиию
Пользуюсь хрюшей и VS 2008 express
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2013, 21:08     Кривое считывание с файла
Посмотрите здесь:

C++ считывание из файла
Считывание с файла C++
C++ Считывание из файла.
C++ Считывание с файла !
C++ Считывание с файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Starscream
 Аватар для Starscream
55 / 43 / 2
Регистрация: 04.11.2012
Сообщений: 106
28.01.2013, 21:56     Кривое считывание с файла #2
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
#include <iostream>
#include <fstream>
#include <string>
#include <locale.h>
using namespace std;
#include <windows.h>
int main()
{
    setlocale(0 ,"Russian");
    char str[]= {"Vremya-velikiy ychitel,no,yvi, ono ybivaet svoih ychenikov. Berlioz"};
    ofstream outfile("TEST1.TXT");
    for(int j=0;j<= strlen(str) - 1;j++)
        outfile.put(str[j]);
    cout<<"Файл записан!"<<endl;
    outfile.close();
 
    char ch;
    ifstream infile("TEST1.TXT");
    while(!infile.eof())
    {
        ch = infile.get();
        cout << ch;
    }
    cout<<endl;
    system("pause");
    return 0;
}
вот так все нормуль
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
28.01.2013, 22:19  [ТС]     Кривое считывание с файла #3
Спасибо,теперь я понял в чём была моя ошибка... Вообще я учусь программировать на С++,читаю книгу,а там часто ошибки в листингах,и меня это бесит,но всё же это лучше,когда сам чего-то находишь,так лучше запомнить,теперь я точно буду знать,что нужно закрывать файлы,тогда беды не будет,спасибо за обьяснение
Starscream
 Аватар для Starscream
55 / 43 / 2
Регистрация: 04.11.2012
Сообщений: 106
28.01.2013, 22:21     Кривое считывание с файла #4
Кстати текст на русском тоже записывается и выводится нормально , или так было задуманно написать транслитом ?)
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
28.01.2013, 22:26  [ТС]     Кривое считывание с файла #5
не,так не было задуманно,просто у меня с выводом из строковых типов тоже были проблемы,выводило ересь

Добавлено через 3 минуты
Цитата Сообщение от Starscream Посмотреть сообщение
Кстати текст на русском тоже записывается и выводится нормально , или так было задуманно написать транслитом ?)
Дело в том,что я загоняю русский текст в строку,а выводит она бред тот же,что,если не использовать setlocale
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
28.01.2013, 22:33     Кривое считывание с файла #6
Цитата Сообщение от BORSHEVIK Посмотреть сообщение
не,так не было задуманно,просто у меня с выводом из строковых типов тоже были проблемы,выводило ересь
Чтобы этого не случалось дописывай в коде мейна вначале
C++
1
2
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
При этом незабывай подключать windows.h + в свойствах консоли выставь шрифт Lucida console ну и на этом проблемы с русским выводом закончаться
Yandex
Объявления
28.01.2013, 22:33     Кривое считывание с файла
Ответ Создать тему
Опции темы

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