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

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

Войти
Регистрация
Восстановить пароль
 
cj3687
2 / 2 / 0
Регистрация: 10.10.2013
Сообщений: 43
#1

Работа с двоичными файлами - C++

09.02.2014, 23:21. Просмотров 258. Ответов 2
Метки нет (Все метки)

Всем добрый вечер!) По заданию требуется написать 2 программы (для открытия и чтения двоичного файла) для записи последовательности из n чисел,но проблема в том, что они некорректно работают.

CreateFile:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main()
{
FILE *f;
int i, n, a;
f=fopen("E\\111\\abc.data", "wb");
cout<<"n="; cin>>n;
for(i=0;i<n;i++)
{
cout<<"a="; cin>>a;
fwrite(&a,sizeof(int),1,f);
}
fclose(f);
return 0;
}

ReadFile:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main()
{
FILE *f;
int i,n, *a;
f=fopen("E:\\111\\abc.dat", "rb");
fread(&n,sizeof(int),1,f);
cout<<"n="<<n<<"\n";
a=new int[n];
fread(a,sizeof(int),n,f);
for(i=0;i<n;i++)
{
cout<<a[i]<<"\t";
}
cout<<endl;
fclose(f);
return 0;
}


P.S. Если не сложно, проверьте еще функцию, находящую группу поло-
жительных элементов наибольшей длины (т.е. максимальное число подряд идущих положительных элементов)

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int Count(char *fname)
{
    FILE *f;
    long i,n;
    int a,k1,k;
    k1=k=0;
    if ((f=fopen(fname,"rb"))==NULL)
      return 1;
    n=Size(fname)/sizeof(int);  
    for (i=0;i<n;i++)
    {
        while (a>0)
        {
          k1++;
        }
        if (k1>=k)
        k=k1;
    }
    return k;
        
}


Заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 23:21     Работа с двоичными файлами
Посмотрите здесь:

C++ Работа с файлами
Работа с файлами C++
Организация файлового ввода/вывода (работа с текстовыми и двоичными файлами) C++
C++ Работа с двоичными файлами
Работа с двоичными файлами C++
Работа с двоичными файлами C++
C++ Работа с двоичными файлами
C++ Работа с двоичными файлами, организация ввода-вывода структурированной информации/
Переделать работу с текстовыми файлами под работу с двоичными файлами C++
C++ Работа с двоичными файлами
C++ Работа с двоичными файлами и командной строкой
Работа с двоичными файлами C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stella
75 / 75 / 5
Регистрация: 26.02.2013
Сообщений: 224
09.02.2014, 23:34     Работа с двоичными файлами #2
cj3687, в первой программе вы размер массива не записали в файл:
C++
1
fwrite(&n,sizeof(int),1,f);
во второй программе кажется так (там n пропущено):
C++
1
fread(a,n*sizeof(int),n,f);
cj3687
2 / 2 / 0
Регистрация: 10.10.2013
Сообщений: 43
10.02.2014, 22:46  [ТС]     Работа с двоичными файлами #3
Да, спасибо!))
Yandex
Объявления
10.02.2014, 22:46     Работа с двоичными файлами
Ответ Создать тему
Опции темы

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