2012-07-26 2 views
3

C++에서는 바이너리로 내보내는 프로그램을 만들었으며 이제는 독자를 만들고 있습니다. 올바르게 읽었지만 한 가지 문제 만 있습니다. 내 파일은 일련의 숫자가 들어있는 파일이며 1470009300047000199와 같이 화면에 읽고 인쇄 할 때 3 "000"세트는 존재하지 않습니다. ifstream을 사용하여이 파일을로드하고이를 그대로 유지할 계획입니다. 누군가 내 파일에서 "000"세트를 제거하는 법을 말해 줄 수 있습니까? 다른 C++ 프로그램을 작성해야만 괜찮습니다. "000"을 제거하고 공백으로 바꿀 내용이 필요합니다.내 파일에서 "000"그룹을 삭제 하시겠습니까?

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main(int argc, char* argv[]) 
{ 
    if (argc < 2) 
    { 
     cout << "Error 1"; 
     return 0; 
    } 
    else 
    { 
     int FileLength; 
     ifstream InputFile(argv[1], ios::binary); 
     ofstream OutputFile("DECOMPILED_FILE.txt"); 
     InputFile.seekg(0, ios::end); 
     FileLength = InputFile.tellg(); 
     InputFile.seekg(0, ios::beg); 
     for (int i = 0; i < FileLength; i++) 
     { 
      cout << InputFile.get(); 
     } 

     cin.get(); 
    } 
    return 0; 
} 
+1

입력 파일에 0이 없습니까? 어떤 유닉스에 있다면'hexdump <당신의 파일 이름> '을 해 보았습니까? –

+0

예 원본 파일에 해당 파일이없는 것 같습니다. 그리고 어떤 유닉스를 사용하지 않고있다. – dvds414

답변

2

어떻게 정규 표현식 어떻습니까? 파일에있는 하위 문자열 '000'을 찾아보십시오 (""). 의사 코드 :

for each line in the file do: 
    if line.strstr("000") then 
      line.replace("000", " ") 

     cout << line << endl; 
+0

미안하지만 나는 멍청하다. 어떻게 파일에 쓴 모든 줄을 가져 와서 변수에 넣을 수 있습니까? – dvds414

+0

당신이 말한 것을하는 주된 문제는 문자로 읽혀지고 문자를 문자열로 변환 할 때 엉망이되어 프로그램이 종료된다는 것입니다. – dvds414

+0

@ dvds414 내 답변을 업데이트했습니다 ... "000"으로 시도한 후 ... – cybertextron

관련 문제