Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228

Ошибка при открытые файла

14.12.2013, 00:57. Показов 2412. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибка при открытые файла. В файл запысывает нормально. Даже читает то что там есть(несколько обьектов) но после того как прочитает последний обьект, то ошибка, хз почему. Надо записать и прочитать обьекты класса Parts. В классе написал методы записи и чтения самы себя(взял с Лафоре). В autoRepair есть методы saveToFileParts и openFromFileParts. В проекте уже есть файлик который надо открыть(в нем два обьекта). Помогите мне пожалуста с етим, надо сдавать курсовую скоро, и только вот это не работает(
Вложения
Тип файла: 7z Kursak.7z (5.94 Мб, 9 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2013, 00:57
Ответы с готовыми решениями:

При отправке файла при помощи TFTP в логе появляется запись: "Синтаксическая ошибка в имени файла"
Здравствуйте! Использую такую команду: >tftp 192.x.x.150 get C:\scan\file_555.txt 192.x.x.68 Хочу с 150-го компа перекинуть файлик на...

При открытии Opera, пропадают открытые закладки
Доброе время суток, кто-то может объяснить новую «фишку» Opera 46.0: за последние примерно 19 дней, уже второй раз пропадают все открытые...

При "пробуждении" ноутбук загружается, как при обычном включении и все открытые до сна вкладки теряются
Здравствуйте! На ноутбуке установлена Win 8.1. При нажатии кнопки сна, компьютер переходит в спящий режим нормально, но при...

28
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.12.2013, 01:40
Студворк — интернет-сервис помощи студентам
Для примера:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <cstdlib>
using namespace std;
 
class A
{
    
public:
    string a;
    string b;
    string c;
    int n;
    int m;
    
    friend ostream& operator<<(ostream& out, const A& obj) 
    {
        out << obj.a << endl;
        out << obj.b << endl;
        out << obj.c << endl;
        out << obj.n << endl;
        out << obj.m << endl;
        
        return out;
    }
 
    friend ifstream& operator>>(ifstream& fin, A& obj)
    {
        getline(fin, obj.a);
        getline(fin, obj.b);
        getline(fin, obj.c);
        fin >> obj.n;
        fin >> obj.m;
        fin.ignore(1);
        
        return fin;
    }
};
 
int main()
{
    const int N = 10;
    A arr[N];
    vector <A> vec;
    for (int i = 0; i < N; ++i)
    {
        arr[i].a = "aaa aaa";
        arr[i].b = "bbb bbb";
        arr[i].c = "ccc ccc";
        arr[i].n = i;
        arr[i].m = i + 1;
        vec.push_back(arr[i]);
    }
 
    ofstream fout("file");
    for (int i = 0; i < vec.size(); ++i)
        fout << vec[i];
    fout.close();
 
    vector <A> v;
    
    ifstream fin("file");
    if (fin)
    {
        A temp;
        while (fin >> temp)
            v.push_back(temp);
            
        fin.close();
    }
    else cout << "Error!" << endl;
 
     for (int i = 0; i < v.size(); ++i)
        cout << v[i];
 
    system("pause");
    return 0;
}
1
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
15.12.2013, 01:50  [ТС]
alsav22, вот за это реально огромное спасибо. ладно, завтра с тем обьектом, где поля - контейнеры других обьектов, разберусь. Если что, то еще напишу
0
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
15.12.2013, 12:53  [ТС]
alsav22, перегрузил операторы для UntreatedOrders
Кликните здесь для просмотра всего текста
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#ifndef UNTREATEDORDER
 #define UNTREATEDORDER
#include <iostream>
#include <string>
#include <vector>
#include <list>
 
#include "Breakage.h"
#include "Consumables.h"
#include "Parts.h"
#include "Vehicle.h"
 
class UntreatedOrder
{
protected:
    Vehicle vehcl;
    std::vector<Breakage>breakg;
    std::vector<Parts>used_parts;
    std::vector<Consumables>used_consumables;
 
    char *date_format;
 
    time_t date_in;
    time_t deadline;
 
    bool status;
public:
    UntreatedOrder::UntreatedOrder()
    {
        date_format = "%d %B, %Y";
        status = false;
    }
    void add(std::list<Parts>*, std::list<Consumables>*);
    void show(int);
    void edit(std::list<Parts>*, std::list<Consumables>*);
    void make_done();
    Parts show_parts(std::list<Parts>*);
    Consumables show_consumables(std::list<Consumables>*);
    int return_all_price();
 
    friend std::ostream& operator<<(std::ostream& out, const UntreatedOrder& a) 
    {        
        out << a.breakg.size() << std::endl;
        for(int i = 0; i < a.breakg.size();i++)
        {
            out << a.breakg[i];
        }
        std::cout << std::endl;
        out << a.used_parts.size() << std::endl;
        for(int i = 0; i < a.used_parts.size();i++)
        {
            out << a.used_parts[i];
        }
        std::cout << std::endl;
        out << a.used_consumables.size() << std::endl;
        for(int i = 0; i < a.used_consumables.size();i++)
        {
            out << a.used_consumables[i];
        }
        std::cout << std::endl;
        out << a.vehcl << std::endl;
        out << a.date_in << std::endl;
        out << a.deadline << std::endl;
        return out;
    }
 
    friend std::istream& operator>>(std::istream& in, UntreatedOrder& a)
    {
        int n;
        in >> n;
        Breakage b;
        for (int i = 0; i < n; ++i)
        {
            in >> b;
            a.breakg.push_back(b);
        }
 
        in >> n;
        Parts p;
        for (int i = 0; i < n; ++i)
        {
            in >> p;
            a.used_parts.push_back(p);
        }
 
        in >> n;
        Consumables c;
        for (int i = 0; i < n; ++i)
        {
            in >> c;
            a.used_consumables.push_back(c);
        }
        in >> a.vehcl;
        in >> a.date_in;
        in >> a.deadline;
 
        in.ignore(1);
        return in;
    }
};
#endif
вот так:
Кликните здесь для просмотра всего текста
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
52
53
54
55
56
57
58
59
friend std::ostream& operator<<(std::ostream& out, const UntreatedOrder& a) 
    {        
        out << a.breakg.size() << std::endl;
        for(int i = 0; i < a.breakg.size();i++)
        {
            out << a.breakg[i];
        }
        std::cout << std::endl;
        out << a.used_parts.size() << std::endl;
        for(int i = 0; i < a.used_parts.size();i++)
        {
            out << a.used_parts[i];
        }
        std::cout << std::endl;
        out << a.used_consumables.size() << std::endl;
        for(int i = 0; i < a.used_consumables.size();i++)
        {
            out << a.used_consumables[i];
        }
        std::cout << std::endl;
        out << a.vehcl << std::endl;
        out << a.date_in << std::endl;
        out << a.deadline << std::endl;
        return out;
    }
 
    friend std::istream& operator>>(std::istream& in, UntreatedOrder& a)
    {
        int n;
        in >> n;
        Breakage b;
        for (int i = 0; i < n; ++i)
        {
            in >> b;
            a.breakg.push_back(b);
        }
 
        in >> n;
        Parts p;
        for (int i = 0; i < n; ++i)
        {
            in >> p;
            a.used_parts.push_back(p);
        }
 
        in >> n;
        Consumables c;
        for (int i = 0; i < n; ++i)
        {
            in >> c;
            a.used_consumables.push_back(c);
        }
        in >> a.vehcl;
        in >> a.date_in;
        in >> a.deadline;
 
        in.ignore(1);
        return in;
    }

в файл пишет, а вот читать не хочет.

елси так открывать
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
    void openOrdersFromFile()
    {
        std::ifstream fin("ORDERS.DAT");
        UntreatedOrder temp;
        while(fin >> temp)
        {
            untreated_orders.push_back(temp);
            temp.show(1);
        }
        fin.close();
    }

то просто цикл ниразу не выполняеться, а если поставить true и построчно проходить, то ошибка:
Миниатюры
Ошибка при открытые файла  
0
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
15.12.2013, 16:04  [ТС]
для Vehicle, Parts, Consumables и Breakage операторы перегрузил, их сохраняет и читает нормально

Добавлено через 5 минут
еще раз построчно прошел код, ошибка именно в строчке
C++
1
temp.show(1);
Хотя, если ее забрать, и потом просто просмотреть все заказы, то там пусто
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.12.2013, 18:13
Покажите перегрузку для Breakage. Файл с записью UntreatedOrderсмотрели? Там пустых строк, случайно, нет? Что за show()? В UntreatedOrder разве есть такой?

Добавлено через 3 минуты
Смотрю я на ваш class UntreatedOrder и вижу там указатель: char *date_format. Не знаю, как вы его используете, но если в классе есть указатель, то всегда делают конструктор копирования, оператор присваивания и деструктор (http://ru.wikipedia.org/wiki/П... ммирование)).
1
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
15.12.2013, 18:35  [ТС]
alsav22, вот breakage
Кликните здесь для просмотра всего текста
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 <string>
#include <string>
#include <iostream>
#include <iomanip>
 
#include "FatherClass.h"
 
class Breakage: public FatherClass 
{
protected:
    bool repaired;
public:
    Breakage::Breakage()
    {
        repaired = false;
    }
 
    void add();
    void edit();
    void show();
    friend std::ostream& operator<<(std::ostream& out, const Breakage& a) 
    {        
        out << a.Name << std::endl;
        out << a.Description << std::endl;
        out << a.Type << std::endl;
        out << a.cost << std::endl;
        out << a.repaired << std::endl;
        return out;
    }
 
    friend std::istream& operator>>(std::istream& in, Breakage& a)
    {
        getline(in, a.Name);
        getline(in, a.Description);
        getline(in, a.Type);
        in >> a.cost;
        in >> a.repaired;
        in.ignore(1); 
        return in;
    }
};


Добавлено через 7 минут
alsav22, date_format использую в методе show для вывода даты(перевожу time_t в такой формат "%d %B, %Y"; ). Его сохрянять не надо. при создании обьекта он сам инициализируетсья в конструкторе. show() есть.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.12.2013, 18:51
show() увидел. Не на все вопросы ответили. Сделайте проверку на открытие файла. Файл новый создаёте после изменений в коде? А то бывает, что код изменили, а файл старый используется (если при создании содержимое не стирается, например, создаётся для дозаписи). Работайте с отладчиком, смотрите что не так.
1
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
15.12.2013, 20:03  [ТС]
alsav22, ну сейчас еще раз попробую.

Добавлено через 49 минут
alsav22,
Кликните здесь для просмотра всего текста
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#ifndef UNTREATEDORDER
 #define UNTREATEDORDER
#include <iostream>
#include <string>
#include <vector>
#include <list>
 
#include "Breakage.h"
#include "Consumables.h"
#include "Parts.h"
#include "Vehicle.h"
 
class UntreatedOrder
{
protected:
    Vehicle vehcl;
    std::vector<Breakage>breakg;
    std::vector<Parts>used_parts;
    std::vector<Consumables>used_consumables;
 
    char *date_format;
 
    time_t date_in;
    time_t deadline;
 
    bool status;
public:
    UntreatedOrder::UntreatedOrder()
    {
        date_format = "%d %B, %Y";
        status = false;
    }
    void add(std::list<Parts>*, std::list<Consumables>*);
    void show(int);
    void edit(std::list<Parts>*, std::list<Consumables>*);
    void make_done();
    Parts show_parts(std::list<Parts>*);
    Consumables show_consumables(std::list<Consumables>*);
    int return_all_price();
 
    friend std::ostream& operator<<(std::ostream& out, const UntreatedOrder& a) 
    {        
        out << a.used_parts.size() << std::endl;
        for(int i = 0; i < a.used_parts.size();++i)
        {
            out << a.used_parts[i];
        }
        std::cout << std::endl;
        out << a.breakg.size() << std::endl;
        for(int i = 0; i < a.breakg.size();++i)
        {
            out << a.breakg[i];
        }
        std::cout << std::endl;
        out << a.used_consumables.size() << std::endl;
        for(int i = 0; i < a.used_consumables.size();++i)
        {
            out << a.used_consumables[i];
        }
        std::cout << std::endl;
        out << a.vehcl << std::endl;
        out << a.date_in << std::endl;
        out << a.deadline << std::endl;
        return out;
    }
 
    friend std::istream& operator>>(std::istream& in, UntreatedOrder& a)
    {
        system("cls");
        int n;
        in >> n;
        in.ignore(1); 
        std::cout << n;
        Parts p;
        for (int i = 0; i < n; ++i)
        {
            in >> p;
            p.show();
            a.used_parts.push_back(p);
        }
 
        in >> n;
        in.ignore(1); 
        std::cout << n;
        Breakage b;
        for (int i = 0; i < n; ++i)
        {
            in >> b;
            b.show();
            a.breakg.push_back(b);
        }
 
        in >> n;
        in.ignore(1); 
        Consumables c;
        for (int i = 0; i < n; ++i)
        {
            in >> c;
            c.show();
            a.used_consumables.push_back(c);
        }
        in >> a.vehcl;
        a.vehcl.show();
        in >> a.date_in;
        std::cout << a.date_in; 
        in >> a.deadline;
        std::cout << a.deadline;
 
        in.ignore(1);
        return in;
    }
};
#endif
теперь вроде работает нормально.

Добавлено через 38 секунд
только тут цикл два раза проходит
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
    void openOrdersFromFile()
    {
        std::ifstream fin("ORDERS.DAT");
        UntreatedOrder temp;
        while(fin >> temp)
        {
            untreated_orders.push_back(temp);
            temp.show(1);
        }
        fin.close();
    }


Добавлено через 42 секунды
но в контейнер кидает только первый елемент. сейчас попробую пару обьектов записать в файл

Добавлено через 6 минут
два заказа тоже нормально прочитало. только хз почему цикл один лишний раз проходит

Добавлено через 7 минут
alsav22, спасибо вам за огромное помощь, без вас я бы врятли сам сделал это сохранение
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.12.2013, 20:20
Цитата Сообщение от o33ik Посмотреть сообщение
два заказа тоже нормально прочитало. только хз почему цикл один лишний раз проходит
Это нормально (код так сделан). Когда считывается последний temp (он читается до '\n', за которым EOF), то поток ещё рабочий, при следующем заходе поток портится и поэтому лишнего не прочитает, но будет выход из while().

Добавлено через 6 минут
Можно где-то в начале оператора чтения (после чтения первого, что портит поток) сделать проверку годности потока и делать return если поток нерабочий, чтобы не было лишних перемещений по коду. Заход будет, но не будет лишних действий.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2013, 20:20

При открытии проекта не открываются последние открытые окна
Сколько лет при открытии проекта в VS2010 открывались автоматически все окна, которые были открыты перед последним сохранением проекта и я...

Винда скрывает все открытые окна при перетаскивании одного
привет открыто окон 20 различных программ беру одно и начинаю перетаскивать его за шапку если перетаскиваю прямолинейно то все ок -...

Ошибка при открытии файла - Ошибка в части содержимого в книге
Добрый день! Открываю файл. Создаю макросом сводную таблицу, сохраняю файл. Затем при попытке открыть данный файл появляется ошибка:...

FTP SERV-U Ошибка при копировании файла при медленном интернете
На машине на системе WIN7 стоит FTP сервер SERV-U. Другие машины используют для выхода в интернет 3G модемы, и подключаются к фтп для...

При использовании кода в модуле ошибка при открытии файла
есть такой простенький код, которій отлично работает в скрипте *.pl use Cwd; my $cwd = getcwd(); $cwd = $cwd ....


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru