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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2014, 11:26   #1
KATER2
Новичок
Джуниор
 
Регистрация: 14.02.2014
Сообщений: 2
По умолчанию C++ работа с классом fstream

Помогите найти ошибку в коде
Задача должна быть решена с помощью классов fstream
Компоненты файла f – целые (отличные от нуля) числа, причем 10 положительных чисел, 10 отрицательных, и т.д. Получить файл g, в котором записаны сначала 5 положительных чисел, затем 5 отрицательных и т.д.

Алгоритм правильный (делала эту же задачу с помощью функций С - все работает)

Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <locale>
#include <ctime>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_CTYPE,"Russian");
	srand((unsigned)time(NULL));
	ofstream fs, gs;
	ifstream fsr;
	int i, k, s, a, count=0;
	fs.open("f");
	for(;; ){
		cout<<"Введите число компонентов"<<endl;
		cin>>i;
		if(i%20)cout<<"число должно быть кратно 20"<<endl;
		else break;
	}
	for(k=0;k<i; ){
		for(a=0;a<10 && k<i;a++,k++){
			s=rand()%5+1;
			fs<<s;
			cout<<s<<" ";
		}
		for(a=0;a<10 && k<i;a++,k++){
			s=rand()%5-5;
			fs<<s;
			cout<<s<<" ";
		}
	}
	cout<<endl;
	fs.close();
	fsr.open("f");
	gs.open("g");
	for(k=0;k<i; ){
		for(a=0;a<5 && k<i;k++,a++){
			fsr>>s;
			gs<<s;
			cout<<s<<" ";
		}
		fsr.seekg(5*sizeof(int),ios_base::cur);
		for(a=0;a<5 && k<i;k++,a++){
			fsr>>s;
			gs<<s;
			cout<<s<<" ";
		}
		count++;
		if(count%2)fsr.seekg(-10*sizeof(int),ios_base::cur);
	}
	cout<<endl;
	gs.close();
	fsr.close();
	return 0;
}


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 14.02.2014 в 11:54.
KATER2 вне форума Ответить с цитированием
Старый 15.02.2014, 14:43   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Надо открывать файлы в двоичном режиме (ios_base::binary).
Son Of Pain вне форума Ответить с цитированием
Старый 16.02.2014, 23:56   #3
KATER2
Новичок
Джуниор
 
Регистрация: 14.02.2014
Сообщений: 2
По умолчанию

И в двоичном уже открывала, тот же самый результат
KATER2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
РАБОТА С ПОТОКАМИ FSTREAM Ника К Помощь студентам 0 30.05.2012 21:02
работа с классом списков(с++) besbyblik Помощь студентам 0 27.12.2011 22:33
Работа с классом UnChanter Помощь студентам 2 14.03.2010 20:23
Работа с классом| C++ Konicy Общие вопросы C/C++ 15 21.12.2009 19:08
C++ работа с классом VadEr Помощь студентам 2 17.05.2009 12:33