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

Счёт последовательностей бинарных файлов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму ряда с определенной точностью http://www.cyberforum.ru/cpp-beginners/thread1131099.html
Файл вложил
C++ Найти все числа диапазона, которые заканчиваются на любую парную цифру. Решить задачу тремя способами используя операторы цикла while, do while и for. Задача: Вывести на экран все целые числа диапазона от A до B, которые заканчиваются на любую парную цифру . http://www.cyberforum.ru/cpp-beginners/thread1131087.html
Как остановить цикл при прекращении ввода C++
Как остановить цикл, если не было введено числа(2 раза нажать Enter )? #include<iostream> using namespace std; void main() { int a; while(cin >> a ) {
C++ Алгоритмы циклической структуры
Сколько существует способов составить отрезок длинной n см (n вводим с клавиатуры) из отрезков А и В см
C++ Помогите реализовать принцип fifo http://www.cyberforum.ru/cpp-beginners/thread1131039.html
Помогите реализовать принцип "первый зашел первый вышел" и 3 состояния процесса рождение: выполнение и ожидание.
C++ Threadpool нужен тредпул,хранящий созданные треды и назначает им задания.Что посоветуете?примеры,литература...все что угодно.спасибо. подробнее

Показать сообщение отдельно
Ma3au
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 14
27.03.2014, 12:17     Счёт последовательностей бинарных файлов
Написал программу, которая конвертирует текстовый файл в бинарный, считывает из него данные для структуры. И вроде всё работает. Но теперь нужно сделать функцию которая будет считать последовательности байт "0x0A, 0x0O) в этом файле. Вообще не понимаю работу с бинарными файлами и как это организовать. Объясните пожалуйста.
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <iomanip>
#include <fstream>
 
 
 
using namespace std;
 
struct statistic {
 
    char name[15];
    int win;
    int lose;
    int draw;
    int goal;
    int miss;
    int score;
};
 
 
// Считает число строк
int Amount_File( )                              
{
    ifstream amount_team ("stata.txt");
    int amount=1;
    while ( !amount_team.eof() ){
        if( amount_team.get() == '\n' ){
            amount++;
        }
    }
    amount_team.close();
    return amount;
}
//Изменяет текстовый файл в бинарный
void Conv(int amount){
    statistic *ubiq;
    FILE *in ,*bin;
    ubiq = new statistic[amount];
    in = fopen("stata.txt","r");
    bin = fopen("statabin.data","w+b");
    for(int i=0; i<amount; i++)
    {
        fscanf(in, "%s%d%d%d%d%d", ubiq[i].name, &ubiq[i].win, &ubiq[i].lose, &ubiq[i].draw, &ubiq[i].goal, &ubiq[i].miss);
        ubiq[i].score = ubiq[i].win * 2  + ubiq[i].draw;
        fwrite(&ubiq[i], sizeof(ubiq[i]), 1, bin);
    }
    delete [] ubiq;
    fclose(in);
    fclose(bin);
}
 
int main()
{
    using namespace std;
    setlocale(LC_ALL, "Russian");
 
    string nametxt;
 
    ifstream amount_team ("stata.txt");
 
    int amount;
    amount = Amount_File();
 
    statistic *team;
    team = new statistic[amount];
    
    Conv(amount);
    
    FILE *f1 = fopen("statabin.txt", "r+b");
    for(int i=0; i<amount; i++)
        fread(team[i].name, sizeof(team[i]),1, f1);
    fclose(f1);
    ifstream bin ("statabin.txt", ios::binary);
    char binar;
    while(!bin.eof()){
        bin.get(binar) ;
        if(binar == '0') /*&& bin.get() == 'x' && bin.get() =='0' && bin.get() == 'a')*/
            cout << "try";
        
    }
    
    FILE *fbin = fopen("statabin.txt", "r+b");
    char hop[3];
    char qwe[5] = "0xa1";
    //fread(hop, sizeof(hop), 3, fbin);
    //cout << hop;
    //cout << qwe;
    //Сортировка 
    statistic sort;
    for(int i=0; i < amount-1; i++){
        if(team[i].score < team[i+1].score){
            sort = team[i];
            team[i] = team[i+1];
            team[i+1] = sort;
            i = -1;
        }
    }
    //Запись таблицы в файл
    ofstream out_table("table.txt");
 
    out_table <<  "\t\t ---Таблица Результатов---" << endl;
    out_table << setw(15) <<  "Название команды:" << "\t" <<" Количество очков:" << endl;
 
    for (int i = 0; i < amount; i++)
        out_table << setw(15) << team[i].name << "\t\t\t" << team[i].score << endl;
    cout << "Таблица сохранена в файле \"table.txt\" " << endl;
    out_table.close();
 
    FILE *bite;
 
 
    
    delete [] team;
 
    system("pause");
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru