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

C++ файлы ifstream/ofstream - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти суммы пар элементов вектора, находящихся равно далеко от центра http://www.cyberforum.ru/cpp-beginners/thread928162.html
Прочитайте в вектор набор целых чисел. Отобразите сумму первого и последнего элементов, затем сумму второго и предпоследнего и тд. Если количество элементов нечетно, сообщите пользователю об этом и...
C++ Пошаговое описание программы Ребят можете пошагово рассказать программу готовую #include <fstream> #include <string> #include <iostream> #include <string> using namespace std; int Polin(string s); int Monom1(string); http://www.cyberforum.ru/cpp-beginners/thread928144.html
Литература по C++ для начинающих C++
Здравствуйте я учу язык с++ и ничего в нем не понимаю вообще скиньте мне какую то методичку для начинающих или книгу какую то электронную или обычную
C++ реализация ThreadSafe функции
Пишу статическую библиотеку функций, на основе которой разрабатывают приложения. При создании многопоточных приложений на её основе начались проблемы. Думаю, что это связано с тем, что разные...
C++ написание программ http://www.cyberforum.ru/cpp-beginners/thread928097.html
В С++ программы пишутся так же, как в делфи типа с сбрасыванием компонентов на форму с события свойствами в инспекторе объектов или по другому ?
C++ Форматирование текста всем привет. Дан текстовый файл, который содержит строки различной длины. Создайте новый файл, в котором сохраните исходный текст в отформатированном виде, т.е. в тексте не должно быть строк... подробнее

Показать сообщение отдельно
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187

C++ файлы ifstream/ofstream - C++

24.07.2013, 16:33. Просмотров 2958. Ответов 20
Метки (Все метки)

Доброе время суток нужна небольшая помощь с записью/считыванием из файла вообщем при считывание из файла eof() не определяет конца файла и пытается считать следующий элемент понимает что там ничего нету и выдает ошибку это я так понимаю данную ситуацию ! Смотрим пример: пример имеет 100% сходство с ситуацией просто в нем меньше не сущевственного мусора:


lol.h
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
#pragma once
#include <iostream>
using namespace std;
class lol
{
    char*name;
    int id;
    double zone;
public:
    lol(){
        name=NULL;
        id=0;
        zone=0.0;
    }
    lol(char*aname,int aid,double azone){
        name=new char [ strlen(aname)+1 ];
        strcpy_s(name,strlen(aname)+1,aname);
        id=aid;
        zone=azone;
    }
    lol(const lol&av){
        name=new char [strlen(av.get_name())+1];
        strcpy_s(name,strlen(av.get_name())+1,av.get_name());
        id=av.get_id();
        zone=av.get_zone();
    }
    ~lol(){
        cout<<"kill"<<endl;
        delete name;
        cout<<"Kill complit"<<endl;
    }
 
    void set_name(char*aname){
        if(name) delete name;
        name=new char [strlen(aname)+1];
        strcpy_s(name,strlen(aname)+1,aname);
    }
    void set_id(int aid){
        id=aid;
    }
    void set_zone(double azone){
        zone=azone;
    }
    char*get_name()const{
        return name;
    }
    int get_id()const{
        return id;
    }
    double get_zone()const{
        return zone;
    }
    void show(){
        cout<<"name="<<name<<endl;
        cout<<"id="<<id<<endl;
        cout<<"zone="<<zone<<endl;
    }
    friend ostream& operator<<(ostream& os,lol& a);
    friend ifstream& operator>>(ifstream&fs,lol&a);
    friend ofstream& operator<<(ofstream&fs,lol&a);
};


main.cpp
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
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <fstream>
#include "lol.h"
using namespace std;
ostream& operator<<(ostream& os, lol& a)
{
    if(a.name) cout<<"body_type="<<a.name<<endl;
    if(a.id) cout<<"type_of_fuel="<<a.id<<endl;
    if(a.zone) cout<<"displacement="<<a.zone<<endl;
    return os;
}
ifstream& operator>>(ifstream&fs,lol&a)
{
    int sz;
 
 
    fs.read((char*)&sz,sizeof(int));
    fs.read((char*)&a.id,sz*sizeof(char));
 
    fs.read((char*)&sz,sizeof(int));
    fs.read((char*)&a.zone,sz*sizeof(char));
    fs.read((char*)&sz,sizeof(int));
    a.name=new char [sz+1];
    fs.read((char*)a.name,sz*sizeof(char));
    a.name[sz]=0;
    return fs;
}
ofstream& operator<<(ofstream&fs,lol&a)
{
    int sz=sizeof(a.id);
    fs.write((char*)&sz,sizeof(int));
    fs.write((char*)&a.id,sz);
 
    sz=sizeof(a.zone);
    fs.write((char*)&sz,sizeof(int));
    fs.write((char*)&a.zone,sz);
 
    sz=strlen(a.name);
    fs.write((char*)&sz,sizeof(int));
    fs.write(a.name,sz);
 
    return fs;
}
void main()
{
 
    //vector<lol> v1;
    //vector<lol>::iterator iter;
 
    lol m1("alex",1392,0.1);
    lol m2;
    ofstream f("new.bin");
    f<<m1;
    f.close();
    ifstream f1("new.bin");
    while(!f.eof())
    {
        cout<<"eof"<<f.eof()<<endl;
        f1>>m2;
        cout<<m2;
        cout<<"eof"<<f.eof()<<endl;
    }
    f1.close();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru