Форум программистов, компьютерный форум CyberForum.ru

Какая разница между eof и просто объектом? - C++

Восстановить пароль Регистрация
 
mzarb
-211 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141
11.10.2013, 01:56     Какая разница между eof и просто объектом? #1
То есть предположим открыли файл и объект input подставили в условие while и внутри считываем строки с файла с помощью getline. Так вот getline будет двигать указатель пока не достигнет конца файла и потом запишет null в указатель и этим остановит while. Зачем тогда использовать input.eof в условии while, вместо просто input?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2013, 01:56     Какая разница между eof и просто объектом?
Посмотрите здесь:

C++ Какая разница между cin и getline?
C++ Какая разница между cin и scanf?
C++ Разница между объектом и экземпляром класса
C++ Какая разница между двумя алгоритмами?
C++ Какая разница между аргументами и параметрами?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.10.2013, 02:03     Какая разница между eof и просто объектом? #2
Цитата Сообщение от mzarb Посмотреть сообщение
Зачем тогда использовать input.eof в условии while, вместо просто input?
ну так и спроси у того кто использует. вообще использовать eof как условие выхода из цикла небезопасно так как при ошибке чтения eof может и не наступить.
mzarb
-211 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141
11.10.2013, 02:14  [ТС]     Какая разница между eof и просто объектом? #3
Цитата Сообщение от Jupiter Посмотреть сообщение
при ошибке чтения eof может и не наступить.
Можно пример?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.10.2013, 02:22     Какая разница между eof и просто объектом? #4
Цитата Сообщение от mzarb Посмотреть сообщение
Можно пример?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
    int i;
 
    while (!std::cin.eof())
    {
        std::cin >> i;
        std::cout << "Entered " << i << std::endl;
    }
 
    std::cout << "End of loop" << std::endl;
}
введи число и нажми ентер.
введи не число и нажми ентер.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
    int i;
 
    while (std::cin.good())
    {
        std::cin >> i;
        std::cout << "Entered " << i << std::endl;
    }
 
    std::cout << "End of loop" << std::endl;
}
ввод аналогичный
Yandex
Объявления
11.10.2013, 02:22     Какая разница между eof и просто объектом?
Ответ Создать тему
Опции темы

Текущее время: 12:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru