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

чтения заданной строки через fseek - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать новый стек, содержащий только четные числа из заданного стека http://www.cyberforum.ru/cpp-beginners/thread958150.html
Создать стек с числами в диапазоне от –50 до +50. После создания стека выполнить индивидуальное задание. В конце работы все стеки должны быть удалены. Создать новый стек, содержащий только четные...
C++ Удалить из очереди все отрицательные числа Создать однонаправленную очередь с числами в диапазоне от –50 до +50. После создания очереди выполнить индивидуальное задание. В конце работы все очереди должны быть удалены. Удалить из очереди все... http://www.cyberforum.ru/cpp-beginners/thread958148.html
Почему массив изначально нулями не инициализируется? C++
Всем доброго вечера. Имеется проблема такая проблема: есть массив, в котором количество элементов должно менять при выполнении условия. Я делаю так: n=1; double *a = new double ; scanf ("%i",b);...
виртуальные функции C++
C++ подскажите пожалуста на словах код писать ненадо. как преопределить функцию virtual Print(). Создать абстрактный базовый класс Employer (служащий) с чисто виртуальной функцией Print()....
C++ Заменить рекурсию http://www.cyberforum.ru/cpp-beginners/thread958137.html
Доброго времени суток. Помогите избавиться от рекурсии #include "stdafx.h" #include <iostream> #include <vector> using namespace std; int n; vector<int> p(10);
C++ Строки. Вывести на экран самую короткую группу из 0 и 1 Дана строка, состоящая из групп нулей и единиц. Найти и вывести на экран самую короткую группу. Попроще только, без #include <algorithm> #include <iterator>, как в похожем вопросе здесь, такое еще... подробнее

Показать сообщение отдельно
InSpectr
10 / 10 / 1
Регистрация: 09.09.2013
Сообщений: 53

чтения заданной строки через fseek - C++

19.09.2013, 22:00. Просмотров 326. Ответов 2
Метки (Все метки)

Программа должна считать строку из бинарного файла. Но считывает не правильно... подскажите.
что тут как я понимаю не так
fseek(ff,(sizeof(nom-1))*(i),SEEK_SET);
fread(&BLOCKNOTE[nom],sizeof (BLOCKNOTE),1,ff);
Сама программа:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <string>
#include <fstream>
 
 
using namespace std;
 
 
struct NOTE {
char NAME[30];
long long int TELE;
int BDAY[3];
};
 
 
int main()
{ 
    
    int m;
    int i,q,c;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Сколько сотрудников: ";
    (cin>>m).get();
    NOTE *BLOCKNOTE= new NOTE [m];
    cout<<"Введите Имя, Телефон, Дату рождения\n";
    for(i=0;i<m;i++)
    { 
        gets(BLOCKNOTE[i].NAME);
        cin >>BLOCKNOTE[i].TELE;
        for(q=0;q<3;q++)
            cin >>BLOCKNOTE[i].BDAY[q];
        cin.get(); 
    }
    
    
 
    ofstream f("binary.dat", ios::binary);
    for(int ia=0;ia<i;ia++)
    {
        f.write((char *)(&BLOCKNOTE[ia]),sizeof (NOTE));
    }
    f.close();
    
    
    FILE *ff;
    int nom;
    bool temp;
    cout<<endl<<endl<<"Введите какую строку хотите вывести: ";
    cin>>nom;
    
        ff=fopen("binary.dat","r+b");
        fseek(ff,(sizeof(nom-1))*(i),SEEK_SET);
        fread(&BLOCKNOTE[nom],sizeof (BLOCKNOTE),1,ff);
        fclose(ff);
        
 
        cout<<" Имя: "<<BLOCKNOTE[nom].NAME;
        cout<<" Телфон: "<<BLOCKNOTE[nom].TELE;
        cout<<" Дата: ";
        for(int q=0;q<3;q++)
        {
            cout<<" "<< BLOCKNOTE[nom].BDAY[q] ;
        }
    
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru