| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Проблема с файловым потоком |
| Автор: kleks 26.10.2005, 00:00 | ||
| Имеется текстовый файл след. содержания (в качестве примера): 12 34 56 Необходимо написать программу читающую данный файл, игнорируя пустые строки!!!!! Вот что у меня получилось:
Но у меня почему-то выводит: 12 34 и всё!!!! Подскажите пожалуйста в чем ошибка?! |
| Автор: LPBOY 26.10.2005, 00:43 | ||
Проще сделать так:
|
| Автор: comcon1 26.10.2005, 13:12 |
| Getline -- вообще странная функция. смотри напр. тему -- http://forum.vingrad.ru/index.php?showtopic=4555&hl= |
| Автор: S.A.P. 26.10.2005, 15:21 | ||
|
| Автор: LPBOY 26.10.2005, 15:58 | ||||||
Ошибка номер раз: ты не проверил открыт ли файл. Ошибка номер два: while ( !inFile.eof() ) - так писать нельзя! Может привести к бесконечному циклу. Если произойдет ошибка чтения - eofbit не установится никогда. Кстати, это может случиться из-за ошибки открытия файла, которую ты не обработал ИМХО, лучше уж так:
|
| Автор: pablo 26.10.2005, 16:05 | ||||||
а ещё лучше вместо
С точки зрения производительности это одинакого, но понятнее для новичка. |
| Автор: S.A.P. 26.10.2005, 16:30 |
| LPBOY это я для примера привел, чтобы с getline не возиться. Разумеется при условии, что там пробелов нет. PS: Че все меня на мелочах ловят? |
| Автор: kleks 26.10.2005, 22:22 | ||
LPBOY Спасибо, то что нужно!!!! Вроде всё понятно, кроме одной строчки:
Что она делает!? |
| Автор: Kagor 26.10.2005, 22:39 | ||||
Эта директива включает пространство имен библиотеки STL. |
| Автор: LPBOY 26.10.2005, 22:44 | ||||||
Как уже сказали
Эта директива нужна чтобы каждый раз не писать std::cout, std::ifstream и т.д. Хотя как я вижу твой компилятор и без этой директивы позволяет так писать... Добавлено @ 22:49
Я не ловлю тебя - просто высказал свое мнение, это все-таки форум |