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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2011, 19:00   #1
datileo
Пользователь
 
Регистрация: 12.05.2011
Сообщений: 20
По умолчанию Как написать программу по файлам?

Из исходного файла перенести в результирующий те строки, которые не начинаются на указанную букву.

ЭТА ПРОГРАММА НАПИСАНА ЧЕРЕЗ ФУНКЦИИ, А НАДО ЧЕРЕЗ ПОТОКИ. КАК СДЕЛАТЬ?

Код:
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <conio.h>

using namespace std;

int main(void)
{
FILE *fin = fopen("input.txt", "r");
FILE *fout = fopen("output.txt", "wt");

char bukva;
char str[100];

cout<<"Vvedite bukvu:";
cin>>bukva;

while (!feof(fin))
{
fgets( str, 100, fin );
if (bukva!=str[0])
fprintf(fout, "%s", str);

}

fclose(fin);
fclose(fout);

system("pause");
return 0;
}

Последний раз редактировалось Stilet; 07.06.2011 в 14:26.
datileo вне форума Ответить с цитированием
Старый 07.06.2011, 13:45   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

datileo

Из исходного файла перенести в результирующий те строки, которые не начинаются на указанную букву.

пример переноса строк, которые не начинаются на букву 'Z'

Код:
#include <locale>
#include <string>

#include <algorithm>
#include <functional>
#include <fstream>
#include <iterator>

struct l
{
	std::string s;

	friend std::istream& operator>>(std::istream& is, l& buf)
	{
		std::getline(is, buf.s);
		return is;
	}
	operator const std::string& () const { return s; }
};

struct contain : public std::unary_function<std::string, bool>
{
	contain(char letter) : letter_(letter) {}

	bool operator()(const std::string& s) const
	{
		return s.find(letter_) == 0;
	}

	char letter_;
};

int main()
{
	std::ifstream ifs("in.txt");
	std::ofstream ofs("out.txt");

	typedef std::istream_iterator<l> I;
	typedef std::ostream_iterator<std::string> O;

	std::remove_copy_if(I(ifs), I(), O(ofs, "\n"), contain('Z'));

	return 0;
}
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не знаю как написать программу по файлам. ПаскальАВС we4r Помощь студентам 0 01.06.2011 22:45
Как написать программу. Даниял Помощь студентам 18 17.05.2011 23:10
Нужно написать программу по файлам kessi Помощь студентам 0 23.12.2010 16:50
Как написать программу AlexeyMikr Общие вопросы C/C++ 4 15.12.2010 18:50
Как написать программу? peach Помощь студентам 2 02.06.2009 17:04