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

С++ для начинающих

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

Вывод из файла - C++

12.06.2014, 23:07. Просмотров 583. Ответов 21
Метки нет (Все метки)

Доброго времени суток, уважаемые форумчане!!!
Я вот с какой проблемой обращаюсь к вам:
Имеется программа записи данных в файл (Запись происходит корректно, в файле вводимые данные отображаются) нужно написать программу для вывода данных из файла. Функция имеется, при запуске программы ошибок не выдает, зато выдает такую вот гадость:
Вывод из файла
Будьте добры, помогите разобраться в чем причина данного безобразия.
Функция считывания из файла:
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
void massiv::loadBD(string file)
    {
        cout<<"Чтение файла:"<<endl;
        delete data;
        length=0;
        data=new worker*[10];
        worker *c;
        ifstream input("../worker.txt",ios::out);
        if(!input) cout<<"Файл не существует!"<<endl;
        else
        {
            int i=0;
            while(input.eof())
            {
                string age;
                string ii;
                int rr;
                input>>age;
                input>>ii;
                input>>rr;
                c=new worker(age, ii, rr);
                data[i]=c;
                i=i++;
                length++;
            }
            //Считаем  байты
            struct stat file_stat;
            stat("../worker.txt", &file_stat);
            int fileSizeBytes =file_stat.st_size;
 
            cout<<"Данные прочитаны!"<<endl;
            cout<<"Считано "<<length<<" Объектов "<<endl;
            cout<<"Размер файла "<<fileSizeBytes<<" байт"<<endl<<endl;
            input.close();
        }
    }
Функция вывода на экран:
C++
1
2
3
4
5
6
7
8
9
10
void massiv::show()
{
    //cout<<"Put="<<length<<" Capacity="<<size<<endl;
 
    for(int i=0; i < length; i++)
    {
        cout<<"<Элемент #"<<i+1<< ">"<<endl;
        data[i]->showcase();
    }
}
где
C++
1
2
3
4
5
6
7
    void showcase()
    { //Конструктор без параметров
        cout<<"Имя: "<<name<<endl;
        cout<<"Должность: "<<position<<endl;
        cout<<"Возраст: "<<age<<endl;
        cout<<endl;
    }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2014, 23:07     Вывод из файла
Посмотрите здесь:

Вывод файла - C++
Вообщем, кое-как сделал запись в файл. Теперь как бы вывести то, что уже записал? Неправильно программа работает. #include&lt;iostream&gt; ...

Вывод из файла - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; struct avia { char DepCity; char ArrCity; ...

вывод из файла - C++
С текстового файла считать последовательность записей, содержащих данные о книге: &lt;Автор&gt;, &lt;Название книги&gt;, &lt;Год издания&gt;, &lt;Количество...

Вывод из файла - C++
Здравствуйте написал программу ввода/вывода из файла, но когда выводит из файла на экран, почему-то последняя строчка дублируется в чем...

Вывод из файла С++ - C++
Как из текстового файла содержащего кучу строк вывести 5 строк

вывод из файла - C++
в текстовом файле лежат 2 матрицы в таком виде размерности 7*7 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.06.2014, 01:34     Вывод из файла #2
Содержимое файла покажите, и конструктор worker.
Vashtanerada
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 142
13.06.2014, 09:23  [ТС]     Вывод из файла #3
Содержимое файла:
Иван Администратор 24
Андрей Программист 21
Александр Техник 24
Сергей Инженер 50
Николай Программист 16
Конструктор worker^
C++
1
2
3
4
5
6
worker(string Name, string Positoin, int Age)
    { //Конструктор с параметрами
        name=Name;
        position=Positoin;
        age=Age;
    }
Функция show() работает нормально, она у меня используется в программе записи в файл, для вывода того, что записывается. И работает нормально.
MaKaRoN IV
15 / 15 / 6
Регистрация: 20.04.2013
Сообщений: 64
13.06.2014, 12:03     Вывод из файла #4
Может стоит на кодировку посмотреть?
Попробуйте изменить кодировку текстового файла, а потом снова запустите программу: запишите и прочитайте.
Всякое бывает. Скажем такие кодировки: OEM 866, Windows 1251, ну и UTF-8, KOI8.
У меня такая проблема решалась, когда я использовал формат OEM 866, в Notepad++ легко менять кодировки.
Можно еще поразмыслить так, напишите данные на английском, если вывод английских букв будет нормальный, значит проблема в кодировке, если нет, то проблема в коде.
Там дальше посмотрим, что можно сделать.

Добавлено через 7 минут
Дополнительные материалы по чтению из файла:
1. http://hashcode.ru/questions/13782/c...-%D0%B2-%D1%81
2. http://lord-n.narod.ru/download/book.../14/strtok.htm
Vashtanerada
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 142
13.06.2014, 12:05  [ТС]     Вывод из файла #5
Цитата Сообщение от MaKaRoN IV Посмотреть сообщение
напишите данные на английском, если вывод английских букв будет нормальный, значит проблема в кодировке, если нет, то проблема в коде.
С английским текстом точно такая же беда.
MaKaRoN IV
15 / 15 / 6
Регистрация: 20.04.2013
Сообщений: 64
13.06.2014, 12:09     Вывод из файла #6
3. http://cppstudio.com/post/747/

Добавлено через 3 минуты
Скиньте пожалуйста весь код, я попробую разобраться.

Добавлено через 17 секунд
Скиньте пожалуйста весь код, я попробую разобраться.
Vashtanerada
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 142
13.06.2014, 12:11  [ТС]     Вывод из файла #7
1 - программа записи в файл
2 - программа чтения из файла
1.RAR
2.RAR
MaKaRoN IV
15 / 15 / 6
Регистрация: 20.04.2013
Сообщений: 64
13.06.2014, 12:23     Вывод из файла #8
Пока посмотрите на объявление переменных, возможно где-то с указателями напутали. С самого начала. Возможно лишний указатель или наоборот не хватает. Хотя, я думаю, среда разработки предупредила бы, но все же поглядите.
Возможно проще будет считать strtok и сразу выводить.
Vashtanerada
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 142
13.06.2014, 12:34  [ТС]     Вывод из файла #9
Цитата Сообщение от MaKaRoN IV Посмотреть сообщение
Пока посмотрите на объявление переменных, возможно где-то с указателями напутали.
Вроде бы все впорядке
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.06.2014, 16:36     Вывод из файла #10
Цитата Сообщение от Vashtanerada Посмотреть сообщение
2 - программа чтения из файла
Почему там, в function.cpp, #include "function.h" криво сделан? Код не компилируется.
Vashtanerada
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 142
13.06.2014, 16:53  [ТС]     Вывод из файла #11
дак там в function.h в принципе кода нет, только несколько директив и все
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.06.2014, 17:07     Вывод из файла #12
Цитата Сообщение от Vashtanerada Посмотреть сообщение
дак там в function.h в принципе кода нет, только несколько директив и все
Так и что? Компилятор хедер не находит и компиляция не проходит. Хотите сказать, что у вас компилируется?
Проверил я программу чтения из файла, содержимое которого было выложено в 3-ем посте. Работает нормально (проверял в 10-й студии). Единственное, что изменил: файл положил в папку проекта, везде в коде изменил "../worker.txt" на "worker.txt", убрал лишние папки, все файла в папке проекта. Результат на скрине.
Миниатюры
Вывод из файла  
Vashtanerada
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 142
13.06.2014, 17:10  [ТС]     Вывод из файла #13
Цитата Сообщение от alsav22 Посмотреть сообщение
Хотите сказать, что у вас компилируется?
у меня компиляруется и запускается, разве что выдает то, что в первом сообщении показано
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.06.2014, 17:20     Вывод из файла #14
Цитата Сообщение от Vashtanerada Посмотреть сообщение
у меня компиляруется
Отнесём к чудесам, которых в программировании не бывает (скрин компиляции прилагаю). Забыл написать, что файл создавал вручную, кодировка ANSI.
Миниатюры
Вывод из файла  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2014, 17:27     Вывод из файла
Еще ссылки по теме:

Вывод из файла - C++
Как можно вывести все содержымое файла в переменную с пробелами , с абзацами короче со всеми символами.Я вот что пытался типа такого...

вывод из файла - C++
подскажите как мне считать сколько элементов(чисел) расположено в данной строке, и если их больше некоторого значения перевести курсор на...

Ввод\вывод из файла - C++
Подскажите в чем ошибка при чтении из файла и как правильно? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include...

Вывод структуры из файла - C++
Подскажите, почему в текстовом файле не появляется текст? Как мне сделать, чтобы в структуре было не один человек? У меня задача стоит,...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.06.2014, 17:27     Вывод из файла #15
Когда файлы, из лишних папок, переносил в папку проекта, то, естественно, подключение хедеров изменил под это.
Yandex
Объявления
13.06.2014, 17:27     Вывод из файла
Ответ Создать тему
Опции темы

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