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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
#1

Завершение цикла при вводе EOF - C++

27.01.2014, 10:54. Просмотров 349. Ответов 3
Метки нет (Все метки)

Пишу небольшую программку и в ней имеется вот такой код:
C++
1
2
3
4
        typedef std::istream_iterator<std::string> string_input;
    for (string_input j(std::cin); j != string_input(); ++j) {
        ....
    }
Теоретически цикл должен завершится при вводе символа EOF, который у меня равен -1. Однако при вводе этого символа(EOF или -1) программа не воспринимает его как положено и цикл не прерывается. Подскажите пожалуйста в чем может быть дело...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 10:54     Завершение цикла при вводе EOF
Посмотрите здесь:

При вводе вместо цифр символов программа перестаёт ожидать ввода на следующей итерации цикла. Почему? - C++
Почему это происходит? #include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); void...

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл? - C++
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt; &quot;Hello&quot; &lt;&lt; endl; } ...

Неожиданный выход из цикла при вводе "е/Е" - C++
пытался разобраться с этой проблемой в другой теме, но решил все же вынести в отдельную, т.к. хочется понять, это UB/глюк или моё упущение....

Досрочное завершение цикла for - C++
for (int i = 0; i &lt; n; i++) { cin &gt;&gt; names &gt;&gt; scores; } // прекратить ввод введение строки No More если даже i не достиг...

Условие завершение цикла с использованием структуры - C++
Доброе время суток! Я новичок на этом форуме и если че не так не ругайтесь. У меня такой вопрос как задать условие выхода из цикла....

Консоль. Завершение цикла нажатием клавиши - C++
В консольной программе запускается бесконечный цикл. Необходимо организовать завершение цикла при нажатии любой клавиши(или какой-л...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.01.2014, 11:16     Завершение цикла при вводе EOF #2
Цитата Сообщение от Ilot Посмотреть сообщение
Однако при вводе этого символа(EOF или -1)
Каким образом ввод осуществляется? В винде надо Ctrl+D нажать.
http://ideone.com/mggFxN
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
27.01.2014, 11:32  [ТС]     Завершение цикла при вводе EOF #3
Вроде как разобрался Ctrl + Z. Думал у меня не проканает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2014, 11:34     Завершение цикла при вводе EOF
Еще ссылки по теме:

Завершение бесконечного цикла через определенное время - C++
Есть бесконечный цикл for( ; ; ), который обрабатывает событие нажатия кнопки в игре. Если на кнопку не нажали в течении двух секунд,...

Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал - C++
Составить программу, которая при вводе символа с клавиатуры выво-дит &quot;латинская буква&quot; при вводе латинской буквы и &quot;не латинская бук-ва&quot;...

При использовании getline не работает eof - C++
while(!file.eof()) { getline(file,dv_tmp.name); file &gt;&gt;dv_tmp.profit &gt;&gt;dv_tmp.count_worker; mdv.push_back(dv_tmp); } ...

При построчном чтении файла eof наступает раньше срока - C++
Здравствуйте, товарищи! Столкнулся с такой проблемой: при построчном потоковом чтении файла (при помощи getline) бит eof...

При чтении из файла последние данные считываются дважды !? eof() ? - C++
Есть следующий код: std::ifstream fin(&quot;ParentList&quot;, std::ios::binary); QString str; while(!fin.eof()) { ...

Выполните, пожалуйста, задание, при этом вместо оператора цикла while используйте оператора цикла do_while - C++
Используя оператор цикла while, напишите программу для вычисления ниже следующей суммы. // fkdj.cpp: определяет точку входа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.01.2014, 11:34     Завершение цикла при вводе EOF #4
Цитата Сообщение от Ilot Посмотреть сообщение
Ctrl + Z
Точно. Перепуталось с юниксами.
Yandex
Объявления
27.01.2014, 11:34     Завершение цикла при вводе EOF
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru