2014-11-16 4 views
0

ppm 파일을 읽고 해당 내용을 배열에 저장하려고합니다. 나는 그것을 표시하려고 시도하지만 나는 아무것도 출력하지 못하는 것부터 시작합니다.ppm 파일 읽기 C++

char magic; 
ifstream myfile; 
myfile.open(file,ios::in | ios::binary); 
    if (!myfile.is_open()) 
    { 
     cout<<"Failed to open"; 
    } 
myfile.get(magic); 
if(myfile) cout <<magic <<"not working"; 
myfile.close(); 

파일을 열었지만 읽을 수 없습니다. 나는 또한 < < 연산자를 사용하여 출력을 시도했지만 거기에서도 운이 없습니다.

+1

"읽을 수 없다"는 말은 무엇을 의미합니까? << 마법을 부를 때 아무 것도 보이지 않습니까? – Crummy

+0

어떤 유형의 PPM입니까? 예상되는 마법의 숫자는 무엇입니까? P1 -> P6? –

+0

이 답변은 헤더를 읽는 방법을 알려주지 만 상대하고있는 파일의 유형을 모르면 실제 이미지 데이터를 읽는 방법에 대한 조언을 드릴 수 없습니다. http://stackoverflow.com/a/20092028/920069 –

답변

0

파일을 읽을 가능성이 있지만 변수에 모든 값이 저장되어 있지 않습니다. 나는이 대신 myfile.get의 (마법)를 추가 제안 : 당신이 볼 수 있듯이

char magic; 
ifstream myfile; 

if (!myfile.open(file, ios::in | ios::binary) 
{ 
    cout << "Failed to open" << endl; 
} 

vector<char> magicNumbers; 
while (myfile >> magic) 
{ 
    magicNumbers.push_back(magic); 
} 
myfile.close(); 

, 당신은 배열의 어떤 종류의 모든 값을 저장해야합니다, 나는 여기 유연성 벡터를 사용했다. 나머지는 당신에게 달렸습니다.

+0

필자도 ppm 사진에 문제가 있다고 생각 했는데도 문제가 없었지만 새로운 사진을 다운로드했습니다. 고마워요 @Vormeph! – user3474409

+0

죄송합니다. 한가지 더 질문합니다 @Vormeph, "while (myfile >> magic)"이 뭐하고 있는지 설명해 주시겠습니까? – user3474409

+0

모든 것은 공백을 포함한 파일의 모든 문자를 'char magic'변수로 읽습니다. 이런 식으로 할 필요는 없지만, 내가 한 것처럼 짧습니다. 다른 방법을 원하면 getline (...)을 참조하십시오. – Poriferous