В следующем коде я не могу использовать класс std::string
.Как пропустить пустые строки без класса строк
Я пытаюсь прочитать файл с пустыми строками, и я хочу игнорировать пустые строки, когда я сталкиваюсь с ними.
Я проверил некоторые идеи с использованием упрощенного примера и созданного текстового файла, содержащего пустые строки.
int main() {
ifstream fin;
fin.open("test.txt");
if(fin.fail()){
cout << "Input file fail.";
exit(-1);
}
char line[10];
while(!fin.eof()){
fin.getline(line, 10);
if(line[0] == '\n')
cout << "skip" << "\n";
else
cout << line << "\n";
}
}
Я также пытался что-то вроде strlen(line) == 1
, но ничего не работает до сих пор.
В чем проблема?
См. [Почему iostream :: eof внутри условия цикла считается неправильным?] (Http://stackoverflow.com/q/5605125/2069064) – Barry
'std :: getline()' отбрасывает разделитель, что объясняет почему ни одно из ваших решений не будет работать. –
* Нам не разрешено использовать класс строк * - Так что вы можете также назвать свой курс * C-программированием * вместо * C++-программирования *. – PaulMcKenzie