Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 7
1

Бинарный поиск в бинарном файле

26.12.2013, 14:28. Показов 1715. Ответов 2
Метки нет (Все метки)

Здравствуйте, помогите решить проблему. Написал программу для нахождения числа бинарным поиском и перебором в бинарном файле. Программа, вроде, работает. То есть выводит в конце то, что надо, но когда пытаюсь открыть созданный бинарный файл через TextEdit (ОС MacOS 10.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
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <locale>
#include <fstream>
using namespace std;
ofstream bin("/Users/GlebShipilov/Desktop/бинарный файл.bin",ios::binary);
ifstream dat("/Users/GlebShipilov/Desktop/бинарный файл.bin",ios::binary);
void perebor(int pm, int pa[1000],int px)
{
    int k=0,i;
    for(i=0;i<pm;i++)
    {
        if (pa[i]!=px)
            k++;
        else
            cout<<"Кол-во шагов перебором: "<<k<<endl;
    }
    
}
void binar(int n, int parray[1000], int y)
{
    int s;
    int l=0;
    int a=0;
    int b=n;
    {
        while(parray[s]!=y)
        {
            s=(a+b)/2;
            if(y==parray[s])
            {
                l++;
            }
            else if (y<parray[s])
            {
                b=s;
                l++;
            }
            else if (y>parray[s])
            {
                a=s;
                l++;
            }
        }
    }
    cout<<"Кол-во шагов бинарным поиском "<<l;
}
class poisk
{
protected:
    int array[1000],i,m,j,x;
public:
    void getData()
    {
        cout<<"Введите кол-во элементов"<<endl;
        cin>>m;
        for (i=0;i<m;i++)
        {
            array[i]=rand()%1001;
        }
        for (i=0;i<m;i++)
            for(j=0;j<m-i-1;j++)
                if(array[j]>array[j+1])
                    swap(array[j],array[j+1]);
    }
    void showData()
    {
        for(i=0;i<m;i++)
            cout<<array[i]<<" ";
        cout<<endl<<"Введите число, которое хотите найти "<<endl;
        cin>>x;
        perebor(m, array, x);
        binar(m, array, x);
    }
};
int main()
{
    setlocale(LC_ALL, "");
    poisk search;
    search.getData();
    bin.write((char*)(&search), sizeof(search));
    dat.read((char*)(&search), sizeof(search));
    search.showData();
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Бинарный поиск в бинарном файле  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2013, 14:28
Ответы с готовыми решениями:

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

Поиск в бинарном файле
Привет! Мне нужно в бинарный файл записать: ФИО, Номер телефона и дату рождения(массив из трех...

Поиск в бинарном файле
мне надо в бинарном файле найти одну 8-ми байтную строку, я сделал вот такой поиск, но он почему то...

Поиск по структуре в бинарном файле
Всем привет! Хотел бы обратиться к более опытным людям.Есть задача &quot;Запись имеет вид: название...

2
║XLR8║
1210 / 912 / 270
Регистрация: 25.07.2009
Сообщений: 4,371
Записей в блоге: 5
26.12.2013, 15:25 2
Ну как-бы записывать то надо char а не int. В этом вся проблема.

Когда ты пишешь
C++
1
std::ostream << int
выведется значение равное int + '0'

А в твоем случае int - 32 бита, а char - 8-16 где как. Текстовый редактор читает по 8-16 бит, т.е. 1 int он разузнает как 2 char.
0
5480 / 4875 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.12.2013, 15:40 3
Цитата Сообщение от DrG Посмотреть сообщение
но когда пытаюсь открыть созданный бинарный файл через TextEdit (ОС MacOS 10.9) выдает то, что на скриншоте.
А вы что ожидали увидеть? Текстовые радакторы - для текстовых файлов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2013, 15:40

Поиск заданной последовательности символов в бинарном файле
Допустим в файле написано &quot;raz dva tri dva raz raz dva&quot;. Нужно произвести поиск и подсчёт введёной...

Поиск числа в файле, открытым в бинарном режиме
Здравствуйте уважаемые дамы и господа, возник вопрос по поводу поиска числа в бинарном файле....

Поиск в бинарном файле с использованием файловых потоков
Подскажите как реализовать поиск объекта в бинарном файле.(телефонный справочник, поиск по названию...

Бинарный поиск в текстовом файле
Есть текстовый файл с 10000 словами в алфавитном порядке. Функция проверяет, есть ли введенное...


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

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

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