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

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

Войти
Регистрация
Восстановить пароль
 
DipPenguin
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 11
#1

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

02.04.2014, 14:28. Просмотров 243. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файлы, ошибка конца файла (C++):

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

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

Чтение файла с несколькими знаками конца файла - C++
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно решить данную проблему ?

Определение конца файла - C++
помогите пожалуйста определить условие конца файла #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;vector&gt; using namespace std; ...

Условие конца файла - C++
Имеем функцию: void Inpfile (stud&amp; s) { ifstream base(&quot;base.txt&quot;); if(!base)std::cout &lt;&lt; &quot;Can't create input file&quot;; ...

Истинность конца файла - C++
Суть в чем. Есть реализация криптосистемы МакЭлисса. В входном текстовом файле считываются символы, символы разбиваются на биты, из...

3
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,656
Завершенные тесты: 1
02.04.2014, 15:17 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вы же сначала читаете из файла,
потом выполняете некоторые операторы
и только потом проверяется на конец файла.
Вариант - перенести чтение в конец:
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
5425 / 4820 / 442
Регистрация: 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
03.04.2014, 00:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 00:50
Привет! Вот еще темы с ответами:

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

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

определения конца файла - C++
Как определить конец файла если я открываю файл fopen и считываю данные через freed ? int reedFileT(Dek *&amp;ldek,Dek *&amp;rdek) { ...

Считывание до конца файла - C++
В каждой строке файла 2 целых числа. Нужно считать по 2 числа до конца файла и выводить в каждую строку сумму этих двух чисел. Раньше...


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

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

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