2015-01-22 3 views
0

제 질문은지도의 내용이 담긴 C++ 텍스트 파일에 작성하는 것입니다. 현재 내가 현재의 방법으로 내 파일에 기록하는 것을 시도하고있다 :지도 컨테이너 내용으로 파일 쓰기 C++

void toFile() 
{ 
    ofstream outFile; 
    outFile.open("random.txt"); 
    if(outFile.is_open()){ 
     for(it = mymap.begin(); it != mymap.end(); it++){ 
     if(mymap.size()!=0){ 
      outFile << it->second.listInfo() << endl; 
      outFile.close(); 
     } 
     else{ 
      cout << "An Error has occured" << endl; 
     } 
     } 
    } 
} 

내 기능 listInfo()을하기 바로 내 자신의 구현 클래스의 정보를 출력하는 기능. 내 파일에 쓸 it->second.listInfo()을 나는 오류가 발생하지만 it->first를 사용할 때 대신 내가 오류가 발생하지 않습니다

void listInfo(){ 
cout << "NAME: " << name << "Adress " << adress << "Color " << color; 
} 

내 문제는 내가 사용하는 경우입니다. 누군가 내 코드가 오류를 생성하고 내 하위 클래스의 정보를 내 파일에 나열하지 않는 이유를 설명해 주실 수 있습니까?

당신은 파일에 기록되지 않는 것 같습니다
+3

함수는'void'를 반환합니다. 파일에'void '를 인쇄하려고합니다. 그건 말이되지 않습니다. – juanchopanza

+1

mymap이란 무엇입니까? for 루프가 'mymap'(map?)에있는 경우에만 반복 할 것이기 때문에 (mymap.size()! = 0) 쓸모가 없습니다. –

+0

@JeromeL mymap은 구현 한 맵 컨테이너의 이름입니다. 네가 여러 가지 방법으로 코드를 작성하려고 노력한 정보에 감사 드리며 그 경우에 자신을 바보 취급해야합니다. 그것에 대해 귀하의 정보를 가져 주셔서 감사합니다. – SamGoat

답변

1

: 당신은 아마이 같은 뭔가를 찾고있다

outFile << it->second.listInfo() << endl; 

// This doesnt return anything it simply writes to standard out. 
void listInfo(){ 
    cout << "NAME: " << name << "Adress " << adress << "Color " << color; 
} 

:

void YourClass::listInfo(std::ofstream) { 
    out << "NAME: " << name << "Adress " << adress << "Color " << color << endl; 

} 


it->second.listInfo(outFile); 

데이터가 성공적으로 스트리밍 할 수 있습니다이 방법 파일.

+0

건배, 다음번에 코드와 문제 해결을 도와 주셔서 감사합니다. 공백은 아무것도 출력하지 않습니다. @ 벤 – SamGoat