C sorusu

fansonic

Yeni üye
25 Tem 2012
14
0
Arkadaşlar dersten geçip geçmemem bu soruya bağlı çok az zamanım var yardım eder misiniz ?

Soru:"Bir paragraftaki bazı kelimeler in( en az 5 kelime) eş anlamlıları m2.txt dosyasındadır.program eş anlamlısı verilen kelimeleri bulup, düzeltilmiş olarak ekrana yada m3.txt ye yazdırmalıdır.( m1.txt: yeni bir printer alındı...> m2.txt:printer: yazıcı->> m3.txt>>... Yeni bir yazıcı alındı.)"
 
Moderatör tarafında düzenlendi:

Faezsmyd

Yeni üye
21 Ağu 2017
17
0
// Example program
#include <iostream>
#include <string>
#include <vector>

using namespace std;

class Ceviri {
public:
Ceviri();
vector<string> kelime;
};

Ceviri::Ceviri() {
string gecici;
bool enter = true;
while(enter == true) {
cin >> gecici;
kelime.push_back(gecici);
if(cin.get() == '\n') enter = false;
};
// kelime[a].length() + 1 yazmamın sebebi ":" almasın diye
gecici = "printer:yazici";
for(unsigned a = 0; a < kelime.size(); a++) {
if(gecici.substr(0, kelime[a].length()) == kelime[a]) kelime[a] = gecici.substr(kelime[a].length() + 1, 7);
}
for(unsigned i = 0; i < kelime.size(); i++) cout << kelime << ' ';
};

int main()
{
Ceviri();
return 0;
}


işteyim telefondan bu kadar oluyor telden dosyalama işlemi yapamadığım için o bölgeyi yapamadım ama bu kod umarım birkaç fikir verir
 
Son düzenleme:

fansonic

Yeni üye
25 Tem 2012
14
0
// Example program
#include <iostream>
#include <string>
#include <vector>

using namespace std;

class Ceviri {
public:
Ceviri();
vector<string> kelime;
};

Ceviri::Ceviri() {
string gecici;
bool enter = true;
while(enter == true) {
cin >> gecici;
kelime.push_back(gecici);
if(cin.get() == '\n') enter = false;
};
// kelime[a].length() + 1 yazmamın sebebi ":" almasın diye
gecici = "printer:yazici";
for(unsigned a = 0; a < kelime.size(); a++) {
if(gecici.substr(0, kelime[a].length()) == kelime[a]) kelime[a] = gecici.substr(kelime[a].length() + 1, 7);
}
for(unsigned i = 0; i < kelime.size(); i++) cout << kelime << ' ';
};

int main()
{
Ceviri();
return 0;
}


işteyim telefondan bu kadar oluyor telden dosyalama işlemi yapamadığım için o bölgeyi yapamadım ama bu kod umarım birkaç fikir verir


Hocam tam anlayamadımda biraz daha yardımcı olabilir misiniz?
 

Faezsmyd

Yeni üye
21 Ağu 2017
17
0
Kod:
#include <iostream>
#include <vector>
#include <string>
#include <fstream>

using namespace std;

int main() {
	vector< pair <string, string> > kelimelerVeAnlamlari;
	char oku[80];
	string gecici;
	vector <string> cumle;

	// dosyadan kelimeleri ve anlamlarını alıyoruz
	ifstream kelimeleriOku("kelimeler.txt");
	ifstream anlamlariOku("anlamlar.txt");
	int sayac = 0;
	// dosyanın başından sonuna kadar satır satır okuma işlemi
	while (!kelimeleriOku.eof())
	{
		// her döngüde değişir
		pair <string, string> okunanCiftler;

		// kelimeler.txt den satırın ilk 80 harfini alır
		kelimeleriOku.getline(oku, 80);
		// aldığı satırı kelime çiftinin ilk değerine yerleştirir
		okunanCiftler.first = oku;
		// anlamlar.txt den satırın ilk 80 harfini alır
		anlamlariOku.getline(oku, 80);
		// aldığı satırı kelime çiftinin ikinci değerine yerleştirir
		okunanCiftler.second = oku;
		// okuduğu çifti kaydeder
		kelimelerVeAnlamlari.push_back(okunanCiftler);		
		sayac++;
	}
	// konsolun çarpı tuşuna basana kadar çalışır
	while (1) {
		// Enter Tuşuna basılıp basılmadığını doğrular
		bool enter = true;
		// Enter tuşuna basılana kadar çalışır
		while (enter == true)
		{
			cin >> gecici;
			// girilen kelimeleri kaydeder
			cumle.push_back(gecici);
			// Enter tuşuna basıldığını doğrular
			if (cin.get() == '\n')	enter = false;
		}
		for (int i = 0; i < cumle.size(); i++)
		{
			for (int j = 0; j < kelimelerVeAnlamlari.size(); j++)
			{
				// kelimeler ve anlamını karşılaştırır
				if (cumle[i] == kelimelerVeAnlamlari[j].first) {
					cumle[i] = kelimelerVeAnlamlari[j].second;
                                        break;
				}
			}
			// cümleyi ekrana yazar
			cout << cumle[i] << ' ';
		}
		cout << '\n';
		// kaydettiği cümleyi siler çünkü sınırsız dizi oluşturdum
		cumle.clear();
	}
	return 0;
}

burdada kondantenin dediği gibi namespace std kısmını kaldırdım

Kod:
#include <iostream>
#include <vector>
#include <string>
#include <fstream>

int main() {
	std::vector< std::pair <std::string, std::string> > kelimelerVeAnlamlari;
	char oku[80];
	std::string gecici;
	std::vector <std::string> cumle;

	// dosyadan kelimeleri ve anlamlarını alıyoruz
	std::ifstream kelimeleriOku("kelimeler.txt");
	std::ifstream anlamlariOku("anlamlar.txt");
	int sayac = 0;
	// dosyanın başından sonuna kadar satır satır okuma işlemi
	while (!kelimeleriOku.eof())
	{
		// her döngüde değişir
		std::pair <std::string, std::string> okunanCiftler;

		// kelimeler.txt den satırın ilk 80 harfini alır
		kelimeleriOku.getline(oku, 80);
		// aldığı satırı kelime çiftinin ilk değerine yerleştirir
		okunanCiftler.first = oku;
		// anlamlar.txt den satırın ilk 80 harfini alır
		anlamlariOku.getline(oku, 80);
		// aldığı satırı kelime çiftinin ikinci değerine yerleştirir
		okunanCiftler.second = oku;
		// okuduğu çifti kaydeder
		kelimelerVeAnlamlari.push_back(okunanCiftler);		
		sayac++;
	}
	// konsolun çarpı tuşuna basana kadar çalışır
	while (1) {
		// Enter Tuşuna basılıp basılmadığını doğrular
		bool enter = true;
		// Enter tuşuna basılana kadar çalışır
		while (enter == true)
		{
			std::cin >> gecici;
			// girilen kelimeleri kaydeder
			cumle.push_back(gecici);
			// Enter tuşuna basıldığını doğrular
			if (std::cin.get() == '\n')	enter = false;
		}
		for (int i = 0; i < cumle.size(); i++)
		{
			for (int j = 0; j < kelimelerVeAnlamlari.size(); j++)
			{
				// kelimeler ve anlamını karşılaştırır
				if (cumle[i] == kelimelerVeAnlamlari[j].first) {
					cumle[i] = kelimelerVeAnlamlari[j].second;
					break;
				}
			}
			// cümleyi ekrana yazar
			std::cout << cumle[i] << ' ';
		}
		std::cout << '\n';
		// kaydettiği cümleyi siler çünkü sınırsız dizi oluşturdum
		cumle.clear();
	}
	return 0;
}

elimden geldiğince açık yazmaya çalıştım umarım yardımcı olmuştur

Kod:
Örnek text dosyaları
"Kelimeler.txt"
printer
question
answer
yazici
soru
cevap

"Anlamlar.txt"
yazici
soru
cevap
printer
question
answer


kelime ve anlamının satırı aynı hizaya gelmeli yoksa düzgün çalışmaz
 
Son düzenleme:

kondanta

Katılımcı Üye
29 Tem 2017
911
0
CNCF
Kod:
#include <iostream>
#include <vector>
#include <string>
#include <fstream>

using namespace std;

const int max = 80;

int main() {
	vector< pair <string, string> > kelimelerVeAnlamları;
	char oku[max];
	string gecici;
	vector <string> cumle;

	// dosyadan kelimeleri ve anlamlarını alıyoruz
	ifstream kelimeleriOku("kelimeler.txt");
	ifstream anlamlariOku("anlamlar.txt");
	int sayac = 0;
	// dosyanın başından sonuna kadar satır satır okuma işlemi
	while (!kelimeleriOku.eof())
	{
		// her döngüde değişir
		pair <string, string> okunanCiftler;

		// kelimeler.txt den satırın ilk 80 harfini alır
		kelimeleriOku.getline(oku, max);
		// aldığı satırı kelime çiftinin ilk değerine yerleştirir
		okunanCiftler.first = oku;
		// anlamlar.txt den satırın ilk 80 harfini alır
		anlamlariOku.getline(oku, max);
		// aldığı satırı kelime çiftinin ikinci değerine yerleştirir
		okunanCiftler.second = oku;
		// okuduğu çifti kaydeder
		kelimelerVeAnlamları.push_back(okunanCiftler);		
		sayac++;
	}
	// konsolun çarpı tuşuna basana kadar çalışır
	while (1) {
		// Enter Tuşuna basılıp basılmadığını doğrular
		bool enter = true;
		// Enter tuşuna basılana kadar çalışır
		while (enter == true)
		{
			cin >> gecici;
			// girilen kelimeleri kaydeder
			cumle.push_back(gecici);
			// Enter tuşuna basıldığını doğrular
			if (cin.get() == '\n')	enter = false;
		}
		for (int i = 0; i < cumle.size(); i++)
		{
			for (int j = 0; j < kelimelerVeAnlamları.size(); j++)
			{
				// kelimeler ve anlamını karşılaştırır
				if (cumle[i] == kelimelerVeAnlamları[j].first) {
					cumle[i] = kelimelerVeAnlamları[j].second;
					break;
				}
			}
			// cümleyi ekrana yazar
			cout << cumle[i] << ' ';
		}
		cout << '\n';
		// kaydettiği cümleyi siler çünkü sınırsız dizi oluşturdum
		cumle.clear();
	}
	return 0;
}

elimden geldiğince açık yazmaya çalıştım umarım yardımcı olmuştur

Kod:
Örnek text dosyaları
"Kelimeler.txt"
printer
IoT
question
answer
yazici
Nesnelerin Interneti
soru
cevap

"Anlamlar.txt"
yazici
Nesnelerin Interneti
soru
cevap
printer
IoT
question
answer


kelime ve anlamının satırı aynı hizaya gelmeli yoksa düzgün çalışmaz

Neden namespace ile using kullanmak kotu bir practicedir. Click.
Yazdigin koda lafim yok, lakin bilgilendirme geregi duydum. Cunku 'using' ile namespace kullanilmamasi gereken bir yontem.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.