2012-02-14 4 views
1

Как игнорировать пустую первую строку в «input.txt»? Я не обязательно знаю, что есть пустая строка (в данном конкретном случае есть, но я хочу сделать свой общий код), поэтому мне нужно иметь возможность читать строку, если есть информация, или пропустить ее, если она пусто. Это только для первой линии.C++ Игнорировать пустую первую строку

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

Вот так я читаю строки. Если бы я точно знал, что любой входной файл, на который я запускал этот, имел пустую первую строку, я бы просто сделал «getline» раньше, но я этого не знаю.

+4

Вы получите лучший ответ, если вы разместите существующий код. – YXD

+1

также .. вы должны проверить, если это первая строка, и если она пустая. Если эти два условия успешны, пропустите его ... – vmpstr

+0

'while (getline (mcFile, line)) { istringstream liness2 (линия); ... } ' Вот как я читаю строки. Если бы я точно знал, что любой входной файл, на который я запускал этот, имел пустую первую строку, я бы просто сделал «getline» раньше, но я этого не знаю. – user1187621

ответ

4
string data; 

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

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

Но если строка состоит только из пробелов, вкладок и т. Д.? – mikithskegg

+1

Сделайте временную копию данных и проанализируйте пробелы из нее, прежде чем проверять, является ли она пустой. – Foggzie

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 
     } 
    } 
    }