Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
DipPenguin
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 11
1

Файлы, ошибка конца файла

02.04.2014, 14:28. Просмотров 899. Ответов 3
Метки нет (Все метки)

Задание : Даны символьные файлы f и g. Записать в файл h все начальные совпадающие компонентов файлов f и g .
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
25
26
27
28
29
# include <iostream>
# include <fstream>
 
using namespace std;
 
main()
{
    ifstream f,g ;
    ofstream h;
    f.open("f.txt");
    g.open("g.txt");
    h.open("h.txt");
     char f1,f2;
     int c=0; //количество символов
    while(!f.eof())
    {
       f>>f1;cout<<"f "<<f1<<" ";
       g>>f2;cout<<"g "<<f2<<endl;
       if(f1==f2)
         {
             c++;
             h<<f1<<" ";
         }
       else
            break;
    }
    cout<<c;
    cout<<"File sozdan ...";
}
файл f.txt значения "1 2 3 4 5 6" , в файле g.txt "1 2 3 4 5 6" . выводит в файл h.txt "1 2 3 4 5 6 6"
Почему после прочтения 6 из файла f метод f.eof() в цикле while не срабатывает и начинает еще раз считывать шестерку ?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 14:28
Ответы с готовыми решениями:

Error C2760: синтаксическая ошибка / Fatal error C1004: непредвиденное обнаружение конца файла
Набыдлокодил следующее: Graph.h template&lt;class D&gt; class Graph { private:...

Перебор файла посимвольно, как организовать цикл, работающий до конца файла.
Нужно перебрать файл посимвольно и, учитывая спецсимволы записать содержимое...

Чтение файла с несколькими знаками конца файла
В файле несколько раз встречается ноль, и ни как не получается прочитать его...

Условие конца файла
Имеем функцию: void Inpfile (stud&amp; s) { ifstream base(&quot;base.txt&quot;);...

определение конца файла
При чтении не получается выйти из цикла с помощью istream::eof(), было много...

3
zss
Модератор
Эксперт С++
7769 / 7004 / 4396
Регистрация: 18.12.2011
Сообщений: 18,523
Завершенные тесты: 1
02.04.2014, 15:17 2
Лучший ответ Сообщение было отмечено DipPenguin как решение

Решение

Вы же сначала читаете из файла,
потом выполняете некоторые операторы
и только потом проверяется на конец файла.
Вариант - перенести чтение в конец:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
f>>f1;cout<<"f "<<f1<<" ";
g>>f2;cout<<"g "<<f2<<endl;
while(!f.eof())
{
      if(f1==f2)
      {
             c++;
             h<<f1<<" ";
      }
      else
            break;
      f>>f1;cout<<"f "<<f1<<" ";
      g>>f2;cout<<"g "<<f2<<endl;
}
1
DipPenguin
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 11
02.04.2014, 15:21  [ТС] 3
Спасибо)
0
alsav22
5450 / 4845 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
03.04.2014, 00:50 4
А лучше так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    while((f >> f1) && (g >> f2))
    {
       cout << "f " << f1 << " ";
       cout << "g "<< f2 << endl;
       if(f1 == f2)
         {
             c++;
             h << f1 << " ";
         }
       else
            break;
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 00:50

Считывание до конца файла
В каждой строке файла 2 целых числа. Нужно считать по 2 числа до конца файла...

Чтение из файла с конца
Добрый день, не могу реализовать такую штуку =) Хотелось бы имеющийся...

определения конца файла
Как определить конец файла если я открываю файл fopen и считываю данные через...


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

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

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