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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти суммы пар элементов вектора, находящихся равно далеко от центра http://www.cyberforum.ru/cpp-beginners/thread928162.html
Прочитайте в вектор набор целых чисел. Отобразите сумму первого и последнего элементов, затем сумму второго и предпоследнего и тд. Если количество элементов нечетно, сообщите пользователю об этом и отобразите значение последнего элемента без суммирования. почему то меня не покидает чувство, что я делаю что то не так ))) Вот мои потуги: #include <string> #include <conio.h> #include...
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 функции
Пишу статическую библиотеку функций, на основе которой разрабатывают приложения. При создании многопоточных приложений на её основе начались проблемы. Думаю, что это связано с тем, что разные потоки мешаются друг другу, заходя в одну и туже функцию библиотеки. На первое время решил добавить в функции вот такую конструкцию: int some_function{ static UINT32 entryCounter = 0; ...
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. Просмотров 2763. Ответов 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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru