2012-12-31 37 views
0

我正在编写一个简单的IDE for python供我自己使用,并且在writeFile函数中,我可以选择输入命令endl来启动一个新行并且它工作正常;但是当我看着它生成的文件时,它在新行之前打印endl。所以有什么办法,我可以从变量中删除“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 << data + "\n"; 
      } 
      else if(data != "s" && data != "endl") 
      { 
        fos << data + " "; 
      } 
     } 
     fos.close(); 
} 
+0

当你的问题在一个大块里时很难读。请重新格式化它。但无论如何,你是说你可以在文件中看到'endl',但你不应该?我猜'fos'输出写入,对吧?然后在你的代码中,我看到'fos << data +“\ n”;'如果'data'包含'endl',那么它就会出现在'fos ..对吧?如果我错了,请重写你的问题。 – CppLearner

回答

3

原因endl是越来越打印文件里面是因为你被检查endl or new line后提供data变量流对象fos。你可以试试这个:

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

相关问题