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

Запись и чтение вектора из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Народ подскажите, чета я забыл DLL как экспортировать http://www.cyberforum.ru/cpp-beginners/thread632066.html
Вот например есть в DLL код функции: void OpenAbout(HINSTANCE hInst, int cmdMode, HWND hWnds) { .... return; }
C++ Среднее арифметическое и среднее геометрическое двух чисел Даны 2 числа, найти среднее арифметическое с снеднее геометрическое. http://www.cyberforum.ru/cpp-beginners/thread632053.html
C++ Что-то не так в цикле
Цикл пробегает одну строку и после этого программа виснет. for (i = 0; i < img_x - 1; i++) { for(j = 0; j < img_y - 1; j++) { myColor = cvGet2D(img, i, j); r_color = myColor.val; g_color = myColor.val; b_color = myColor.val; x = (r_color + g_color + b_color) / 3;
C++ Разработать программу, чтобы она выводила через запятую все четные числа диапазона
Разработать программу, чтобы она выводила через запятую все четные числа диапазона от 1 до 100, отсортированные в порядке убывания. #include "stdafx.h" #include <conio.h> #include <iostream> int main(int argc, char* argv) { int i; for (i = 1; i <= 100; ++i)
C++ Более простой способ создания форм http://www.cyberforum.ru/cpp-beginners/thread632012.html
Ищу более простой способ создания форм на WinApi без использования ресурсов и.т.п. Может есть какая не будь программа для составления шаблона кодов или ординат объектов размещенных на форме? Сами понимаете если делать программу не визуально подгонять каждую кнопку и выставлять дизайн очень долго и трудоемко, есть идеи, как упростить?
C++ Как отключить? Как отключить использование пространства имён? например: using namespace std; заранее спасибо! подробнее

Показать сообщение отдельно
Флибустьер
 Аватар для Флибустьер
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
05.08.2012, 13:22  [ТС]     Запись и чтение вектора из файла
Спасибо

Добавлено через 20 часов 1 минуту
Мучения продолжаются. Благодаря Avazart написал следующую программу:
Call.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
#include <iostream>
#include <vector>
#include <iterator>
#include <conio.h>
#include <fstream>
#pragma once
 
 
class Call
{
 
int day;
int month;
int year;
int min;
int sec;
int areacode;
int callNumber;
double cast;
double payFoCall;
 
public:
    Call(void);
    ~Call(void);
    double CallCast();
    friend std::ostream &operator << (std::ostream &stream, Call c);
    friend std::istream &operator >> (std::istream &stream, Call &c);
};
Call.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
#include <iostream>
#include <vector>
#include <iterator>
#include <conio.h>
#include <fstream>
#include "Call.h"
 
 
Call::Call(void)
{
}
 
 
Call::~Call(void)
{
}
 
double Call::CallCast()
{
    this->payFoCall = this->min * 0.5;
    return payFoCall;
}
 
 
std::ostream &operator <<(std::ostream &stream, Call c)
{
    stream << "In date: " << c.day << '.' << c.month << '.' << c.year;
    stream << " you call in number ";
    stream << '(';
    std::cout.width(3);
    std::cout.fill('0');
    stream << c.areacode << ')' << '-' << c.callNumber << ",\nlength of call ";
    stream << c.min << "min " << c.sec << "sec. Call cast ";
    stream << c.CallCast() << '\n';
    return stream;
}
 
std::istream &operator >> (std::istream &stream, Call &c)
{
    std::cout << "Enter day/month/year call: ";
    stream >> c.day >> c.month >> c.year;
    std::cout << "Enter min/sec call: ";
    stream >> c.min >> c.sec;
    std::cout << "Enter areacode: ";
    stream >> c.areacode;
    std::cout << "Enter number call: ";
    stream >> c.callNumber;
    std::cout << std::endl;
    return stream;
}
main //тут не корректно работает
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
#include "Call.h"
#include <iostream>
#include <vector>
#include <iterator>
#include <conio.h>
#include <fstream>
 
using namespace std;
int main()
{
    Call c;
    vector<Call> calls;
    ifstream ifs("Calls.txt");
    ofstream ofs("Calls.txt");
    //тут надо заполнить вектор из файла, не работает
    if(ifs.is_open())
                {
                    copy(istream_iterator<Call>(ifs), istream_iterator<Call>(), back_inserter(calls));
                }
    else cerr << "Error!!";
    ifs.close();
 
    char key;
    for(;;){
        do{
            cout << "1. Entry number\n";
            cout << "2. Out numbers\n";
            cout << "3. Exit\n";
            cout << "Select: ";
            cin >> key;
        }while (key <'1' || key >'3');
        switch(key){
        case '1':
            //вводим новый объект
            cin >> c;
            //добавляем его в вектор
            calls.push_back(c);
            break;
        case '2':
            //выводим весь вектор на экран
            copy(calls.begin(),calls.end(),ostream_iterator<Call>(cout));
            break;
        case '3':
            //запись вектора в файл и выход
            if(ofs) copy(calls.begin(),calls.end(),ostream_iterator<Call>(ofs));
            else cerr<<"Error!!"<<endl;
            ofs.close();
            return 0;
        }
 
    }
 
}
И тут я столкнулся с магией... Программа записывает в файл данные из вектора, но при повторном запуске, вместо того, чтобы считать данные из файла и занести их в вектор, она удаляет данные из файла, в вектор ничего не попадает. Где я ошибся?
 
Текущее время: 06:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru