Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
#1

Почему событие eof() файлового потока наступает очень поздно? Какова вообще его логика? - C++

14.04.2012, 23:40. Просмотров 462. Ответов 1
Метки нет (Все метки)

Вот пример, если в папке с программой разместить файл input.txt с числами "1 2 3", то в векторе sequence будут следующие элементы: 1 2 3 3
Почему так происходит? Как этого избежать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <vector>
#inckude <fstream>
 
int main()
{
   std::vector<long> sequence;
   long temp = 0;
   std::ifstream fin("input.txt");
 
   while ( !fin.eof() )
   {
      fin >> temp;
      sequence.push_back( temp );
   }
   fin.close();
 
   for ( std::vector<long>::iterator i = sequence.begin(); i != sequence.end(); ++i )
   {
         std::cout << *i << ' ';
   }
 
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 23:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему событие eof() файлового потока наступает очень поздно? Какова вообще его логика? (C++):

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

Почему если флаг состояния потока eof поднят, то флаг good опущен? - C++
Почему если флаг состояния потока eof поднят, то флаг good опущен? Это нонсенс, друзья. Здесь прочтём, что флаг goodbit потока...

Работа функции feof() и вообще трудности понимания EOF - C++
Заранее прошу простить за тупые вопросы :) В связи с очевидным недоумством я не понимаю 1.foef считала что то за файлом , почему...

Состояние файлового потока - C++
.... fostream log; .... class A { public: A (); }; A::A() {

стоил ли его вообще покупать? очень не хочется пролететь - Планшеты, ebook
простите если не по теме, просто очень нужна ваша помощь... Ребят, помогите пожалуйста, сама в этом деле полный &quot;0&quot;! Предлагают купить...

Событие таймера не обрабатывается или не наступает - C#
Есть форма, отслеживаем изменение определенного файла. При изменении файла меняем иконку программы в трее на 3 секунды, затем возвращаем...

1
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.04.2012, 23:42 #2
C++
1
2
3
4
while (fin >> temp;)
{
    sequence.push_back( temp );
}
а вывод
C++
1
copy(sequence.begin(), sequence.end(), ostream_iterator<long> (cout, " "));
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2012, 23:42
Привет! Вот еще темы с ответами:

Какое событие наступает при перетаскивании столбцов в JTable? - Java
Не подскажите ли какое событие наступает при перетаскивании столбцов (меняю их местами интерактивно)и как это событие отследить?

Принтер печатает очень поздно локалной сети - Принтеры, МФУ
здрасти всем мне проблема такая офисе есть 20 принтер ети принтери соединено сервере через шаринг и печативает очен поздно, если зделаю...

Как отследить клик мыши на той области ListBox, где нет строк (событие OnClick не наступает)? - Delphi
Как отследить клик мыши на той области ListBox, где нет строк (событие OnClick не наступает)?

Передача файлового потока в функцию - C++
Здрасти. ifstream in(&quot;1.txt&quot;); что возвращает in? как передать этот поток (in) в функцию которая выводит символы? void...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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