Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

[C++] İki satır karşılaştırma


Öne çıkan mesajlar

Mesaj tarihi:
bi de cout yerine bi tane daha txt dosyası yaratıp output için kullanırsan daha hoş olur
ayrıca bu şekliyle eğer bir kelime birden fazla varsa ilk dosyada çıktı olarak da fazladan gözükecek
bunu istemiyorsan ekstra bir şeyler gerekebilir.

ek:sadece 2 sonuç vermesi için bir sebep göremiyorum ben
test dosyası yapsan aquila nın dediği gibi hata varsa çok daha rahat bulursun
Mesaj tarihi:
yok aynı dosyanın içinde aynı kelimeden yok başka.

çok kelime bassa ekrana dediğiniz gibi az sayıda kelimeli bir dosya kullanmak mantıklı olabilir fakat 2 kelimeden başkasını basmıyor. o yüzden pek mantıklı gelmedi bana.
Mesaj tarihi:
ya sanırım şundan dolayı oluyor;

ilk iki kelime her iki dosyada da var.
fakat üçüncü kelime tek.
üçüncü kelimenin karşılığını bulamayınca sapıtma ihtimali var mı?
Mesaj tarihi:
MrLevie said:


while(!file.eof())
{
file>>s;
while(!file2.eof())
{
file2>>k;

if(k==s)
{
cout<<k<<endl;
file2.seekg(0);
break;

}


}
}


Aynı kelimeden bulursan başa sarıyorsun, aynı kelimeden yoksa sarmıyorsun. Başa sarma işlemini 2. while'ın sonuna al.


while(!file.eof())
{
file>>s;
while(!file2.eof())
{
file2>>k;

if(k==s)
{
cout<<k<<endl;
break;
}
}
file2.seekg(0);
}


Umarım EOF olduktan sonra başa sarmaya izin veriyordur. ^^

Edit: Vermiyorsa muhtemelen yukarda bahsedilen clear işe yarar.
Mesaj tarihi:
kod aha budur buyrun.

#include <fstream>
#include <string>
#include <iostream>
#include <vector>
#include <istream>

using namespace std;

int main(void)
{
vector<string> v;
fstream file("test1.txt");
fstream file2("test2.txt");
string s;
string k;

while(!file.eof())
{
file>>s;
while(!file2.eof())
{
file2>>k;

if(k==s)
{
cout<<k<<endl;

break;
}
else
file2>>k;
}
file2.clear();
file2.seekg(0);
}



file2.close();
file.close();


system("PAUSE");
return 0;
}
Mesaj tarihi:

#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <hash_set>
#include <algorithm>
#include <deque>

using namespace std;
using namespace stdext;

typedef hash_set<std::string> stringkumesi;

int main()
{
ifstream file1("C:hede.txt"),file2("C:hodo.txt");
istream_iterator<std::string> begin1_(file1),begin2_(file2),end_;

stringkumesi strkume;
insert_iterator<stringkumesi> destination(strkume,strkume.end());
copy(begin1_,end_,destination);
deque<std::string> result;

stringkumesi::iterator iter;

while(begin2_!=end_)
if((iter=strkume.find(*begin2_++))!=strkume.end())
result.push_back(*iter);

system("pause");
}


optimize implement edilmişse (stlport'la neyim) teoride (n ilk dosyadaki satır sayısı, m ikinci dosyadaki satır sayısı olmak üzre) O(m*log(n)) ;). geç kalmışım sorry bu msg sırf show amaçlı. hehehe >:D<
×
×
  • Yeni Oluştur...