IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Запись и чтение контейнеров(а именно vector), через операторы вставки и извлечения.
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Можете привести примеры чтения и записи вектора через операторы << и >>?
я просто пока плохо представляю как это реализовать.. norespect.gif

допустим вот для этого пример :

class Team
{
public :
friend ostream& operator << (ostream& outs, const vector<Team>&);
friend istream& operator >> (istream& sin, vector<Team>&);
friend void file_save(const vector<Team>&);
private:

string TeamName;
int win;
int lose;
int draw;
int score;

};




ostream&  operator << (ostream& outs, const vector<Team>& v) 
{
outs << "Team " << " Wins " << "Loses " << "Draws " << "Scores\n";
for (unsigned int i=0;i<v.size();i++)
{

outs << v[i].TeamName;
set_spaces_t(v,i);
outs << v[i].win << " " << v[i].lose << " " << v[i].draw << " " << v[i].score << "\n";

}

return outs;
}


Как надо правильно переопределить оператор >> для чтения из файла?.
вот функция записи допустим
:
void file_save(const vector<Team>& v){
char filename[15];
cout <<"Enter a file name(without extension) : ";
cin >> filename;
//filename=filename+".sys";
ofstream outfile(filename);
outfile << v;
}



Извиняюсь,Если как-то плохо объяснил что нужно,или наплел тут чуши - голова уже не варит к концу дня.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Спасибо и в этот раз...надо всетаки нормально в Лафоре прочитать про потоки и файлы..

Добавлено через 13 мин.
бжж..опять..


Функции :

void file_save(const vector<Team>& v){
string filename;
cout <<"Enter a file name(without extension) : ";
cin >> filename;
filename=filename+".sys";
ofstream outfile(filename.c_str(), ios::out);
for (unsigned int i=0;i<v.size();i++)
outfile << v[i].TeamName <<v[i].win <<v[i].lose << v[i].draw << v[i].score; ;
}

void file_read (vector<Team>& v)
{
Team temp_obj;
string filename;
cout << "Input file name : ";
cin >> filename;
filename=filename+".sys";
ifstream infile(filename.c_str());
while (!infile.eof()&& infile.good())
{
infile >> temp_obj.TeamName >> temp_obj.win >> temp_obj.lose >> temp_obj.draw >> temp_obj.score;
cout <<temp_obj.TeamName;
v.push_back(temp_obj);
}

}


В принципе,записываются данные в файл нормально.
А читаются..видимо в один string(TeamName) заноситься сразу вся информация из файла..как этого избежать?.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Andrewshkovskii   Запись и чтение контейнеров(а именно vector)   31.05.2008 3:15
volvo   А зачем, собственно, тебе перегружать операцию вво…   31.05.2008 3:35
Andrewshkovskii   ну как видно по коду,он так же будет создан не пра…   31.05.2008 3:41
volvo   Ну, так напиши себе метод (скажем, такой: class T…   31.05.2008 3:46
Andrewshkovskii   хм..сейчас попробую.Кстате,вопрос такой : почему д…   31.05.2008 3:48
volvo   Потому, что дружественная функция - это часть инте…   31.05.2008 4:04
Andrewshkovskii   хм..спасибо=) Написал тут кое-что..только почему-т…   31.05.2008 4:12
volvo   Сам не догадываешься? Чему равен размер вектора пр…   31.05.2008 4:16
Andrewshkovskii   Спасибо и в этот раз...надо всетаки нормально в Ла…   31.05.2008 4:17
volvo   Я ж тебя просил привести пример файла, из которого…   31.05.2008 4:33
Andrewshkovskii   содержимое файла : team11236team21236 Как заполн…   31.05.2008 4:36
volvo   Нет, так не пойдет... Надо разделять данные... Хот…   31.05.2008 4:58
Andrewshkovskii   Спасибо за помощь!Но всеравно не много не пони…   31.05.2008 21:33
volvo   Да, если ты хочешь иметь возможность сортировать в…   31.05.2008 23:11
Andrewshkovskii   Ну я отсутствовал в инете пару дней..когда ты сказ…   2.06.2008 23:02
volvo   Насколько я вижу - вот так будет лучше: bool exsi…   2.06.2008 23:19


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 4:39
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name