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

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

Войти
Регистрация
Восстановить пароль
 
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
#1

При чтении файла последний элемент повторяется дважды - C++

13.12.2010, 17:53. Просмотров 426. Ответов 4
Метки нет (Все метки)

появилась необходимость выучить работу с файлами за 9 часов
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
30
31
32
33
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
 
 
int main()
{
    srand(time(NULL));
    FILE *f,*f1,*f2;
    f=fopen("file","w");//îòêðûòèå ГґГ*éëГ* äëÿ Г§Г*ГЇГЁГ±ГЁ
    for(int i=0;i<15;i++)
    {
      int k=rand()%100;
      fwrite(&k,sizeof(int),1,f);//Г§Г*ГЇГЁГ±Гј ïîýëååГ*ГІГ*Г® Гў ГґГ*éë
    }
    fclose(f);
    int temp;
    f=fopen("file","r");//îòêðûòèå äëÿ Г·ГІГҐГ*ГЁГї
    if (f==0)
     cout<<"Break out"<<endl;
     else
     {
      while(!feof(f))
     {
        fread(&temp,sizeof(int),1,f);
        cout<<temp<<" ";
     }
     }
     fclose(f);
     cout<<endl;    
    return 0;
}
у меня почему-то последний элемент повторяется дважды.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 17:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При чтении файла последний элемент повторяется дважды (C++):

При считывании из файла последний элемент читается дважды - C++
Всем доброго времени суток! Нашёл граблю. Считываю из файла слова, разделённые пробелами, в vector&lt;string&gt;. Для куска кода, которые...

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

Почему при чтении файла последний символ выводится 2 раза? - C++
если структура файла: 1\nEOF. То почему не выполняется условие if(Ch != '\n') { cout.put(Ch); } и программа выводит в...

Чтение и запись из файла в файл - символ в файле повторяется дважды - C++
При компиляции кода последний символ в файле повторяется дважды, что происходит? Как это исправить?? Помогите! #include &lt;iostream&gt; ...

Найти единственное число, которое повторяется в массиве дважды - C++
Дан массив размера N из целых чисел, принимающих любое целое значение в диапазоне от 1 до M, при этом одно число в этом массиве повторяется...

Ошибка при вызове метода класса, при чтении из файла - C++
добрый день, пытаюсь считать данные из и запихнуть их в список в файле у меня вот такие данные a01 b10 А и Б надо запихнуть в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.12.2010, 18:07 #2
Цитата Сообщение от Artishok Посмотреть сообщение
появилась необходимость выучить работу с файлами за 9 часов
Си или С++ ?
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
13.12.2010, 18:41  [ТС] #3
что угодно

Добавлено через 29 минут
help
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.12.2010, 18:47 #4
Artishok, Ану так пробуй
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
30
31
32
33
34
35
36
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
 
using namespace std;
 
 
int main()
{
        srand(time(NULL));
        FILE *f,*f1,*f2;
        f=fopen("file","w");//открытие файла для записи
        for(int i=0;i<15;i++)
        {
          int k=rand()%100;
          fwrite(&k,sizeof(int),1,f);//запись поэлеентно в файл
        }
        fclose(f);
        int temp;
        f=fopen("file","r");//открытие для чтения
        if (f==0)
         cout<<"Break out"<<endl;
         else
         {
          while(!feof(f))
         {
                fread(&temp,sizeof(int),1,f);
                if(!feof(f))
                cout<<temp<<" ";
         }
         }
         fclose(f);
         cout<<endl;
        return 0;
}
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
13.12.2010, 21:21  [ТС] #5
похоже на правду.
выходит условие завершения файла проверялось после последнего вывода?

вот теперь пошли вопросы:
как можно считывать по позициям?

Добавлено через 2 часа 30 минут
можно ли передавать файл как параметр функции?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 21:21
Привет! Вот еще темы с ответами:

Последний элемент из файла выводится 2 раза - C++
Добрый вечер. Подскажите, пожалуйста, почему при чтении из файла последний элемент выводиться 2 раза? Если в файле такие данные: &quot;string1...

Ошибка при чтении файла - C++
Необработанное исключение по адресу 0x0FE4172C (msvcp140d.dll) в .exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD. ...

Абракадабра при чтении из файла - C++
Добрый вечер! Имеется файл, в котором записан двумерный символьный массив, представляющий собой схему графа, например такой: 0 A B C D...

Ошибка при чтении из файла - C++
Файл открывается, но читаться из него информация не хочется. Исходник int c_array :: save(char *path) { FILE *f; f =...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.12.2010, 21:21
Ответ Создать тему
Опции темы

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