kelimelerini değiştirerek programımda çalıştım ve şimdi bir çözüm bulamadığım bir noktadayım. Fext dosyasındaki bazı işaretlerin yerini almam gerekiyor, çünkü program sadece "TIT" kodunu "* 245 $ a" kod numarasıyla değiştiriyor, eğer diğer harfleri de aynı şekilde değiştirmek istersem, program değişmiyor. Metin dosyasında daha fazla yer değiştirmeyi nasıl uygulayabileceğimi bilen var mı? Başka biriyle 5'ten fazla işareti değiştirmek için daha iyi bir seçenek varsa bana bildirin. sadece bazı işlevler ve sınıflar beyan ve uygulanması gereken (şunları yapın bir dosya dönüştürmek içinC++ bir dizgede (metin dosyası)
#include<map>
#include<algorithm>
using namespace std;
map<string,string> convertRules;
typedef map<string,string>::iterator MIT;
void setConvertRules(int numOfRules){
string word,code;
for(int i = 0 ; i < numOfRules; ++i){
cin>>word>>code;
//Use code as search key in order to decrypt
//If you want to encrypt, use convertrules[word] = code;
convertRules[code] = word;
}
}
: Birden dönüştürme kurallarını saklamak için C++ STL içinde map kullanabilirsiniz size
#include <fstream>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
char dateiname[64], kommando[64];
ifstream iStream;
cout << "Choose an activity" << endl <<
" s - search " << endl <<
" c - convert" << endl <<
" * - end program" << endl;
cin.getline(kommando,64,'\n');
switch(kommando[0])
{
case 'c':
cout << "Enter a text file!" << endl;
cin.getline(dateiname,64,'\n');
iStream.open("C://users//silita//desktop//schwarz.txt");
case 's':
break;
case '*':
return 0;
default:
cout << "I can not read " << kommando << endl;
}
if (!iStream)
{
cout << "The File" << dateiname << "does not exist." << endl;
}
string s;
char o[] = "TIT";
while (getline(iStream, s))
{
while(s.find(o, 0) < s.length())
s.replace(s.find(o, 0), s.length() - s.find(o, 3),"*245$a");
cout << s << endl;
}
iStream.close();
}
bu http://stackoverflow.com/questions/5343190/how-do-i-replace-all-instances-of-a-string-with-another-string dosyasının kopyalarını mı? – fghj
bu bir kopya değil çünkü zaten bir uzunluk fonksiyonu ile çalışıyorum, bu yüzden bu çözüm olamaz. Sorun birden fazla işareti değiştirmek ve değiştirme işlevimin (kodun sonunda) doğru olmamasıdır. Çıkış olmalıdır: * 245 $ aAnsätze "korporativer Marktwirtschaft" der Kore-Krise der frühen fünfziger Jahre/burt benim çıkarım böyle görünüyor: * 245 $ a (metin ikinci satırda izler, ama aynı satırda olmalıdır – silisun