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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2011, 17:43   #1
proag
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
По умолчанию проблема по файлам с++

Здравствуйте.Такое вот условие задачки: Есть 2 файла, в них символы . Необходимо вывести общие символы для этих файлов. Массивами пользоваться запрещено по условию.
То что написал я , но работает некорректно. Исправьте, пожайлуста.

Код:
#include <iostream>
#include <fstream>
using namespace std;

fstream Num_3("E:\\Files\\Num_3.txt"); //этот нужен для храниния одинаковых символов и 
                                       //проверки символа как просмотренного
bool test(char s) 
{
	
	Num_3.seekg(0);
	char g;
	while(!Num_3.eof())
	{
Num_3>>g;
if(g == s) return true; //если такой символ уже был то...
	}
return false;
}
void main()
{
	int pos = 0;
	ifstream Num_1("E:\\Files\\Num_1.txt");
	ifstream Num_2("E:\\Files\\Num_2.txt");
if(!Num_1)
{
	cout<<"Num_1 not open";
	return;
}
if(!Num_2)
{
	cout<<"Num_2 not open";
	return;
}
if(!Num_3)
{
	cout<<"Num_3 not open";
	return;
}
	char s1, s2;
	while(!Num_1.eof())
	{
		Num_1>>s1; //читает очередной символ с Num_1
		
			Num_2.seekg(0); //переводит указатель для чтения на начало файла Num_2 для очередного 
			                //прохода по файлу и сравнения со следующим эл-том файла Num_1

			while(!Num_2.eof())
			{
			Num_2>>s2;
			if(s1 == s2) if(test(s1) == true) break;//сравнивает символы файлов  
			                                        //и проверяет сравнивали ли мы эти символы раньше
			Num_3.seekp(pos); //устанавливает указатель для записи в файл Num_3, который нужен для проверки 
			Num_3<<s1<<"\t";
			pos++;
			cout<<s1<<"\t";
			}
	}
	Num_1.close();
	Num_2.close();
    Num_3.close();
}
В файле Num_1 было 1 2 4, в Num_2 было 4. В итоге у меня ответ 1 1 2..., хотя очевидный - это 4
proag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по H файлам в с++ Яр|/||< (^_^) Свободное общение 4 23.03.2010 13:17
Задача по Файлам на Си++ Клеом Помощь студентам 2 15.12.2009 12:47
Вопос по файлам Keny Общие вопросы C/C++ 2 22.03.2009 19:53
Вопрос по файлам. True Общие вопросы Delphi 5 06.05.2008 11:15