2012-12-31 2 views
0

개인적인 용도로 Python 용 IDE를 프로그래밍하고 있으며 writeFile 함수에 endl 명령을 입력하여 새 행을 시작할 수있는 옵션이 있습니다. 그러나 내가 파일을 볼 때 새로운 줄 앞에 endl을 출력합니다. 그래서 변수에서 "endl"을 제거하고 파일에 기록하지 못하게하는 방법이 있습니다. 당신이 endl or new line 확인 후 스트리밍 오브젝트 fosdata 변수를 제공하기 때문에변수에서 특정 문자열을 제거하는 방법

void writeFile() 
    { 
     ofstream fos("data.py"); 
     string data; 
     bool done = false; 
     string temp; 
     cout << "Enter Some Data. Enter s to stop." << endl; 
     while(!done) 
     { 
      cin >> data; 
      if(data == "s") 
      { 
       done = true; 
      } 
      else if(data == "endl") 
      { 
        fos << data + "\n"; 
      } 
      else if(data != "s" && data != "endl") 
      { 
        fos << data + " "; 
      } 
     } 
     fos.close(); 
} 
+0

질문이 큰 블록에있을 때 읽기가 어렵습니다. 제발 다시 포맷 해. 그러나 어쨌든 파일에서'endl'을 볼 수 있다고 말하고 있습니까? 나는'fos'가 쓰기 위해 출력되는 것 같군, 그렇지? 그러면 코드에서'fos << data + "\ n";''데이터'에'endl'이 있으면'fos .. right? 내가 틀렸다면, 질문을 다시 써주십시오. – CppLearner

답변

3

endl 파일 안에 인쇄하기되는 이유입니다. 이것을 시도 할 수 있습니다 :

void writeFile() 
{ 
ofstream fos("data.py"); 
string data; 
bool done = false; 
string temp; 
cout << "Enter Some Data. Enter s to stop." << endl; 
while(!done) 
{ 
    cin >> data; 
    if(data == "s") 
    { 
     done = true; 
    } 
    else if(data == "endl") 
    { 
      fos <<"\n"; 
    } 
    else if(data != "s" && data != "endl") 
    { 
      fos << data + " "; 
    } 
} 
fos.close(); 
} 
+0

+1 : 길게 쳐다 본다면 그 숲에 나무가 보일 것입니다. 좋은 눈. – WhozCraig

+0

정말 고마워했습니다. – dashingbag

+2

@aceassasin 도움이되는 답변을 찾으면 수락하십시오. – Naruto

관련 문제