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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2011, 19:42   #1
koshakmonstr
Новичок
Джуниор
 
Регистрация: 16.04.2011
Сообщений: 0
Восклицание лаборатоная работа за 500р

Нужно сделать лабу к 26 апреля
на с++ или с , с комментариями к каждой строке(к библиотекам тоже)
(есть пример лабы и немного теории)

за финансы в размере 500р

(если в москве то можно лично в лапы + маленькое спасибо в виде шоколада, пива, варенья или булочек в общем чего захотите (в пределах разумного) =)

задание
Написать программу копирования содержимого одного файла в другой, создавая последний в случае необходимости, и оформить ее в виде-де команды интерпретатора shell ОС UNIX с выдачей сообщения о количестве блоков копируемого файла (блок = 512 байт) и байтов. Предусмотреть аномальные ситуации и возможность прерывания от клавиатуры.
Кто-нибудь возьмётся?
koshakmonstr вне форума Ответить с цитированием
Старый 17.04.2011, 02:37   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Пишите мне на email, побеседуем на этот счёт)

Последний раз редактировалось netrino; 17.04.2011 в 20:12.
netrino вне форума Ответить с цитированием
Старый 17.04.2011, 14:10   #3
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Аська в профиле, стучите обсудим.
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 17.04.2011, 19:45   #4
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Если все задачи такой же сложности сделаю за 200р пиши в личку
Код:
#include<iostream>//подключаем библиотеку ввода и вывода
#include<fstream>//подключаем библиотеку для файлового ввода и вывода
#include<locale.h>//подключаем бибилиотеку для вывода кирилицы

using namespace std;//задаем пространство имен std

int main (int argc, char *argv[])//начало функции main она принимает argc(количество аргументов) и *argv[](массив указателей на них)
{ 
	setlocale(LC_ALL, "RUS");//переключаем на русскую кодировку
	//argv[0] - аргумент в индексом 0 имя нашей программы(при вызове его передовать не нужно)
	//argv[1] - аргумент в индексом 1 файл in
	//argv[2] - аргумент в индексом 2 файл out
	if(argc!=3)//если количество аргументов(argc) не соответствует тому которое нам нужно(3)
	{
		cerr<<"Праграмма не получила нужное для работы количество аргументов"<<endl;
		//выводим сообщение об ишибке на стандартный поток вывода ошибок(монитор)
		exit(1);//завершаем процесс с кодом 0x01
	}
	else//если все хорошо т.е. аргумпента три
	{
		ifstream in(argv[1], ios::in);//открываем файл на чтение(его дескриптор имеет имя in)
		if(!in)//если файл не открылся
		{
			cerr<<"Не удалось открыть для чтения файл "<<argv[1]<<endl;
			//выводим сообщение об ишибке, также выводим argv[1](имя файла который мы пытались открыть)
			//на стандартный поток вывода ошибок(монитор)
			exit(1);//завершаем процесс с кодом 0x01
		}
		else//если все хорошо т.е. файл открылся
		{
			ofstream out(argv[2], ios::out );//открываем файл на чтение(его дескриптор имеет имя out)
				if(!out)//если файл не открылся
				{
					cerr<<"Не удалось открыть для записи файл "<<argv[2]<<endl;
					//выводим сообщение об ишибке, также выводим argv[2](имя файла который мы пытались открыть)
					//на стандартный поток вывода ошибок(монитор)
					exit(1);//завершаем процесс с кодом 0x01
				}
				else//если все хорошо т.е. файл открылся
				{
					const int SIZE_BLOCK=512;//создаем константу SIZE_BLOCK(размер блока) со значением 512
					char buff[SIZE_BLOCK];//создаем строку т.е. массив символов
					int bytes=0;//создаем переменную bytes(количество скопированных байт) со значением 0
					while (!in.eof() && !cin.eof() && !out.fail())
					//пока файл из которого мы пишим файл не закончлся
					//и не было нажато ctrl+d
					//и с файлом в который мы пишим ни чего не случилось
					//выполнять действия в фигурных скобках - {} 
					{
						in.read(buff, SIZE_BLOCK);//читаем из потока in(т.е. из файла) в переменную buff
						out.write(buff, in.gcount());//пишим в поток out(т.е. в файл) считанное ранее из in
						bytes+=in.gcount();//увеличиваем количество байт на то которое мы считали
					}
					in.close();//закрываем дескриптор in
					out.close();//закрываем дескриптор out
					//отправляем на стандартный поток вывода(монитор) результирующую информацию
					cout<<"В файл "<<argv[2]<<" из фала "<<argv[1]<<" было успешно считанно:"<<endl
						<<bytes<<" байт"<<endl
						<<bytes/SIZE_BLOCK<<" блоков (1 блок = "<<SIZE_BLOCK<<")"<<endl;
				}
		}
	}
	return 0;//завершаем процесс с кодом 0x00
}
ololo-schoolboy вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Друзья! Нужно сделать прогу, использующую другие файлы и поиск в коде программы!за 500р.! vny007 Фриланс 3 14.12.2010 13:29
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57