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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2012, 21:44   #1
.beckham.
Новичок
Джуниор
 
Регистрация: 16.02.2012
Сообщений: 2
Сообщение Задача на С++. Работа с текстом, файлами

Дан обычный текстовый файл.. в нём написана информация о номерах телефона.. в каждой строке находится информация об одном абоненте: номер телефона, фио, адрес. Нужно написать программу, которая осуществляет поиск абонента с заданным именем. (!)с использованием процедур и функций(!)
Можно ли, хоть как-нибудь, реализовать данную задачу в самом простом и понятном виде?
.beckham. вне форума Ответить с цитированием
Старый 17.02.2012, 15:58   #2
AlexDark
Форумчанин
 
Аватар для AlexDark
 
Регистрация: 23.12.2011
Сообщений: 117
По умолчанию

в первом приближении как то так :
Код:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

/* функция открытия файла */
fstream OpenFile(char * path)
{
	fstream file;
	file.open(path,ios::in);
	return file;
};

/* функция поиска имени в строке */
bool isAbonent (char *name, char *_Str)
{
	string Str(_Str);
	if(Str.find(name)!=string::npos)	return true;
	else								return false;
};

int main()
{
	
	fstream file = OpenFile("C:\\clients.txt");//ну допустим файл тут
	if(!file)
	{
		cout<<"No such file";
	}
	else
	{
		char Str[255]; 
		char name[100];
		cout<<"Enter Abonent name to find"<<endl; 
		cin>>name;//вводим имя кого искать
		bool isFinded = false;
		while(!file.eof()) //пока не дойдем до конца файла
		{
			file.getline(Str,255,'\n');//читаем построчно
			if(isAbonent(name,Str)) //вызываем нашу функцию поиска в строке
			{
				cout<<Str<<endl; //Если она нашла то выводим всю строку, выходим из цикла
				isFinded = true;
				break;
			}
		}
		if(!isFinded) cout<<"No abonent with this name"<<endl;//Не нашли ну и ладно
	}
	file.close();
	system("pause");
}
AlexDark вне форума Ответить с цитированием
Старый 19.02.2012, 16:29   #3
.beckham.
Новичок
Джуниор
 
Регистрация: 16.02.2012
Сообщений: 2
По умолчанию

большое спасибо
.beckham. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на Паскале работа с текстовыми файлами. StudUL Помощь студентам 3 21.12.2008 23:24
Работа с файлами\текстом[C] DropYourWeapon Общие вопросы C/C++ 0 10.11.2008 17:46