2012-02-14 156 views
1

如何忽略「input.txt」中空的第一行?我不一定知道有一個空行(在這種情況下,但是我想讓我的代碼是通用的),所以我需要能夠在有信息的情況下閱讀該行,或者如果有信息則跳過是空白的。這只是第一行。C++忽略空的第一行

while (getline(mcFile, line)) { 
    istringstream liness2(line); ... } 

我就是這樣讀的。如果我確實知道任何輸入文件的第一行都是空的,那麼我會在之前執行「getline」,但我不知道。

+4

如果您發佈的現有代碼你會得到更好的反應。 – YXD 2012-02-14 18:11:12

+1

也..你應該檢查它是否是第一行,如果它是空白。如果這兩個條件成功,則跳過它... – vmpstr 2012-02-14 18:12:57

+0

'while(getline(mcFile,line)) { istringstream liness2(line); ... }' 我就是這樣讀的。如果我確實知道任何輸入文件的第一行都是空的,那麼我會在之前執行「getline」,但我不知道。 – user1187621 2012-02-14 18:14:07

回答

4
string data; 

while (getline(inputFile, data)) 
{ 
    if (data == "") continue; // Skip blank line 

    ... // Do stuff with non-blank line 
} 
+0

但是,如果行只包含空格,製表符等? – mikithskegg 2012-02-14 18:17:01

+1

在檢查數據是否爲空白前,先製作臨時數據副本並解析其中的空白。 – Foggzie 2012-02-14 18:30:27

0
ifstream ReadFile; 
ReadFile.open("input.txt"); 
string content; 
string line; 

if (myReadFile.is_open()) { 
    while (!ReadFile.eof()) { 

     getline(cin,line); 

     content += line + '\n'; 
     if (!line.empty()) { 
      /// do what you want to do 
     } 
    } 
    }