2011-05-21 81 views
1

我有一個C++代碼片段,用於刪除文本文件中某行的第一個單詞,例如從文本文件開頭的行中刪除空格

test C:\Windows\System32 
download C:\Program Files\test.exe 

儘管它刪除了第一個單詞,修剪後仍有剩餘空間,是否有辦法停止刪除此空間?

#include <iostream> 
using namespace std; 

int main() 
{ 
    string tmp; 
    while (!cin.eof()) 
    { 
     cin >> tmp; 
     getline(cin, tmp); 
     cout << tmp << endl; 
    } 
} 
+4

這不是C ,這是C++。它們是有區別的。如果我看到另一個混淆這兩個問題的問題,我會去正則表達式 - 克蘇魯瘋狂。 – 2011-05-21 21:31:45

+2

也,這不是寡婦,它的窗戶! – 2011-05-21 21:33:56

+0

[eof problem C++]的可能重複(http://stackoverflow.com/questions/5764579/eof-problem-c) – 2011-05-21 21:36:14

回答

1

你只需要分流到cout前修剪tmp。從圖書館使用你最喜歡的trim函數,或者寫你自己的。

你可以找到裝飾功能在這裏的一些選項:What's the best way to trim std::string?

一旦你有一個裝飾功能,和Evan特蘭的版本看起來相當不錯,你則可以這樣寫:

cin >> tmp; 
    getline(cin, tmp); 
    cout << trim(tmp) << endl; 
+0

你能提供一個例子嗎? – James 2011-05-21 21:38:13