MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 benim verdiğim örnekti. iki dosyada da 4000'er kelime var. aralarında en az 1000 tane ortak kelime var.
aquila Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 daha kontrol edilebilir bi test dosyasi yap kendine, misal 20-30 kelimelik filan, onlari kullan test ederken.
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 onu da düşündüm fakat gereği olmadığı kararına vardım.
Scheriff Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 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
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 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.
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 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ı?
aquila Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 olabilir, cunku kelimeler ayni degilse icin bir else conditionin yok, oraya bi ayar cekip dene.
Scheriff Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 eof oluyor öle olunca o zmn da flag atıo dosyaya bir daha ulaşman için o flag ı kaldırman gerek nasıl olduğunu hatırlayamadım ama
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 kısa devre yapcam az kaldı böhü
aquila Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 ayni olmayinca kelimeler ikinci dosyada sonraki kelimeye gecmesi gerekiyo anladigim kadariyla.
Scheriff Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 clear() fonk. ilk while bitince koy bunu yani while(!file2.eof()) { file2>>k; if(k==s) { cout< file2.seekg(0); break; } } file2.clear(); }
aquila Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 Scheriff said: clear() fonk. ilk while bitince koy bunu yani while(!file2.eof()) { file2>>k; if(k==s) { cout<<k<<endl; file2.seekg(0); break; } } file2.clear(); }
Mirage Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 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.
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 it didnt say "are you to me" kayış kopuyor yahu. edit : ha bi dk deniyim edit2: ikisini de yemedi hala ilk iki kelimeyi veriyor.
Scheriff Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 mirage ın sölediğinde seekg ın hemen üstüne clear() koy işte olcak bitcek
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 aha bi dk oldu sanırım
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 oldu of çok sağolun ya valla bilmemkaç sayfa yordum sizi sağolun ya
Scheriff Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 np yapcak bişi arıodum ben de ii oldu oyalandım biraz:)
Mirage Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 Nasıl çözdüğünü de yaz bari de ilerde bakcak çekirgeler de faydalanabilsin. :p
MrLevie Mesaj tarihi: Ağustos 13, 2008 Konuyu açan Mesaj tarihi: Ağustos 13, 2008 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; }
senko Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 MrLevie kim giriyor yaf sizin c++ dersine :)
Rahan Mesaj tarihi: Ağustos 13, 2008 Mesaj tarihi: Ağustos 13, 2008 #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<
Öne çıkan mesajlar