Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2010, 23:13   #1
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию потоки сохранение и считывания файла [C++]

Программа не правильно выдает результат, во втором случае где идут по второму кругу Lastname, name... программа не выводит их на экран

Помогите исправить пожалуйста проблему:

Код:
//Students.h
#include <iostream>


using namespace std; 

class Students
{
public:
	char Lastname[100];
	char Name[100];
	char Course[100];
    char StudentCard[100];
    char CityOfArrival[100];
	Students();
	~Students();
	
	friend ostream &operator<<(ostream &stream, Students obj);
	friend istream &operator>>(istream &stream, Students obj);
};
//.cpp
#include "stdafx.h"
#include "Students.h"

Students::Students()
{
	Lastname[0] = '\0';
	Name[0] = '\0';
	Course[0] = '\0';
	StudentCard[0] = '\0';
	CityOfArrival[0] = '\0';
}

Students::~Students()
{}
//main.cpp
#include "stdafx.h"
#include "Students.h"
#include <iostream>
#include <fstream>
using namespace std;

istream &operator>>(istream &stream, Students obj)
{
	cout << "Please, write the characteristics: \n";
	cout << "Lastname: \n";
	stream >> obj.Lastname;
	cout << "Name: \n";
	stream >> obj.Name;
	cout << "Course: \n";
	stream >> obj.Course;
	cout << "Student Card: \n";
	stream >> obj.StudentCard;
	cout << "City of arrival: \n";
	stream >> obj.CityOfArrival;
	return stream;
}


ostream &operator<<(ostream &stream, Students obj)
{
	stream <<"Lastname :" << obj.Lastname << "\n";
	stream <<"Name :" << obj.Name << "\n";
	stream <<"Course: "<< obj.Course << "\n";
	stream <<"Student Card: "<< obj.StudentCard  << "\n";
	stream <<"Course: "<< obj.CityOfArrival<< "\n";
	return stream;
}

int main()
{
	Students obj;
	cin >> obj;
	cout << obj;
	ofstream out("study");
	if(!out)
	{
		cout << "Can't open a file. \n";
		return 1;
	}
	out << obj.Lastname << "\n";
	out << obj.Name << "\n";
	out << obj.Course << "\n";
	out << obj.StudentCard << "\n";
	out << obj.CityOfArrival << "\n";
	
	out.close();

	ifstream in("study");
	if(!in)
	{
		cout << "Can't open a file. \n";
		return 1;
	}

	in >> obj.Lastname;
	in >> obj.Name;
	in >> obj.Course;
	in >> obj.StudentCard;
	in >> obj.CityOfArrival;
	
	cout <<"Lastname :" << obj.Lastname << "\n";
	cout <<"Name :" << obj.Name << "\n";
	cout <<"Course: "<< obj.Course << "\n";
	cout <<"Student Card: "<< obj.StudentCard  << "\n";
	cout <<"Course: "<< obj.CityOfArrival<< "\n";
	
	in.close();
	
	return 0;
}
ArniLand вне форума Ответить с цитированием
Старый 27.05.2010, 23:27   #2
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
class Students
Код:
struct Students
Было бы логичней.
Код:
char Lastname[100];
std::string же
Код:
	in >> obj.Lastname;
	in >> obj.Name;
	in >> obj.Course;
	in >> obj.StudentCard;
	in >> obj.CityOfArrival;
	
	cout <<"Lastname :" << obj.Lastname << "\n";
	cout <<"Name :" << obj.Name << "\n";
	cout <<"Course: "<< obj.Course << "\n";
	cout <<"Student Card: "<< obj.StudentCard  << "\n";
	cout <<"Course: "<< obj.CityOfArrival<< "\n";
Зачем тогда было перегружать << и >> ?
Код:
istream &operator>>(istream &stream, Students obj)
{
	cout << "Please, write the characteristics: \n";
	cout << "Lastname: \n";
	stream >> obj.Lastname;
	cout << "Name: \n";
	stream >> obj.Name;
	cout << "Course: \n";
	stream >> obj.Course;
	cout << "Student Card: \n";
	stream >> obj.StudentCard;
	cout << "City of arrival: \n";
	stream >> obj.CityOfArrival;
	return stream;
}
Тут проблема, сделали бы всё на std::string её бы не было.
Я даже скажу точнее, проблема в stream >> obj.some;
Код:
return 0;
А это уже лишнее
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux

Последний раз редактировалось ozo; 27.05.2010 в 23:30.
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удаляется файл, не закрыты все потоки для этого файла oirren Общие вопросы по Java, Java SE, Kotlin 1 20.12.2009 21:12
Сохранение файла из TStringList мимо Общие вопросы Delphi 3 02.10.2009 15:27
Сохранение файла KREGI Помощь студентам 4 30.03.2009 21:09
Помогите! язык c Тейлор + проблемы считывания файла AlinAA Помощь студентам 3 13.03.2009 22:34
Сохранение файла Македонский Общие вопросы Delphi 7 17.08.2007 08:35