하나의 작업으로 읽기/쓰기를 위해 txt 파일을 열려고합니다. 내 이전 대상 배열에 저장된 사람에 의해 일부 문자를 교환하는 것입니다하나의 작업에서 C++ 읽기/쓰기 txt 파일 -> 문자 교환
void Inputfile::decryptFile(string filename)
{
for(int i=0;i<15;i++)
{
fstream filedest(filename.c_str(), ios::in | ios::out);
if(!filedest)
cerr << "Konnte Zieldatei nicht oeffnen!\n";
else
cout << endl << filename << " geoeffnet zum entschluesseln!\n";
while(!filedest.eof())
{
filedest.get(ch);
if(ch == char(this->mostcharsencrypted[i]))
{
filedest.put(char(this->mostchars[i]));
}
}
filedest.close();
cout << "Fertig!";
}
}
[] 및 mostchars은 [] 문자를 개최 정수 배열입니다 mostcharsencrypted. 8 비트의 Ansii Value가 있다고 확신합니다.이 메서드가 호출되기 전에도이를 확인합니다.
그래서 현재 읽은 문자가 현재 배열 위치 (i : 0-14)에있는 문자 인 경우 txt 파일의 문자를 mostchars []의 문자와 교환하려고합니다.
현재 정확히 일치하는 유형이 표시되지만 txt 파일은 여전히 동일한 콘텐츠를 표시합니다.
'동안'[거의 항상 잘못] (HTTP입니다 (stream.eof()!) //www.parashift.com/c++-faq-lite/input-output.html#faq-15.5). 누가이 쓰레기를 가르쳐?! –
btw'char'에 대한 명시 적 캐스트가 필요하지 않을 수 있습니다. –
현실 세계에서 이것을하는 가장 좋은 방법은 파일을 메모리 맵핑하는 것입니다. 그러나 이것은 학습 예제처럼 보입니다. –