2014-04-08 4 views
0

기본 질문 나는 해결할 수있는 방법을 찾고 있습니다. 내가 ofstream으로 내 C++에서 파일에 쓸 때 끝에 빈 줄이 추가됩니다. 어쨌든이 행동을 멈출 수 있습니까? 다음에 프로그램을 실행할 때 파일을로드하면 문제가 발생합니다.Ofstream 파일 끝 부분에 빈 줄을 추가합니다.

int saveScores(scoreboard sBoard, const string filename) { 
    ofstream outStream; 
    outStream.open("/Users/Wescat/Desktop/Programming/comp2710/wsc0010_project1/scores.txt"); 
    if (outStream.fail()) { 
     cout << "Output file opening failed." << endl; 
     return 1; 
    } 
    int i = 0; 
    while (i < sBoard.numOfScores) { 
     outStream << sBoard.score->name << endl; 
     outStream << sBoard.score->score << endl; 

     sBoard.score = sBoard.score->next; 
     i++; 
    } 
    outStream.close(); 
    return 0; 
} 
+0

ofstream에 쓴 코드를 게시하십시오. – anonymous

+2

코드에서 마지막으로 쓰여지는 것은'std :: endl'의 개행 문자입니다. – 0x499602D2

답변

2

이것은 매우 합리적입니다.

빈 줄로 해석하는 것은 텍스트 편집기가 실제 최종 행의 마지막에 \n 문자가 있음을 나타내는 것입니다 (최종 std::endl에서 생성됨). 그 캐릭터가 거기에 있다는 것은 의미가 있습니다. 그게 바로 의 말입니다. 모두입니다. 실제로, 이것은 "줄 끝"이 의미하는 것입니다!

파일을 다시로드 할 때 문제가 발생하면 실제 버그가 실제로 있음을 알려드립니다.

관련 문제