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

Бинарный файл, не проходит проверка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при выводе строк из файла http://www.cyberforum.ru/cpp-beginners/thread1135461.html
Помогите пожалуйста разобраться в чем ошибка. Весь код писать не буду просто покажу как я вношу данные в файл и считываю. int j=i; ofstream outfile; outfile.open("Out.txt"); for(i=0;i<j;i++) outfile <<"\n"<<d.OS<<"\t"<<d.mult<<"\t"<<d.memory<<"\t"<<d.vers<<"\t"<<d.dev<<"\t"<<d.cost<<endl; FILE *file; file = fopen("Out.txt", "r");
C++ Вставить равномерно пробелы в строку, чтобы его длина была ровно 50 символов Помогите, пожалуйста В тексте, который состоит не более чем из 50 символов, вставить равномерно пробелы так, чтобы его длина была ровно 50 символов. http://www.cyberforum.ru/cpp-beginners/thread1135460.html
C++ Cделать ввод с клавиатуры 20 слов и найти индекс максимального слова
Нужно сделать ввод с клавиатуры 20 слов и найти индекс максимального слова. Может у кого-то есть идеи?
Создать структуру Прибор C++
нужно оголосить структуру Прибор с полями: категория, изготовитель, приоритет прибора, цена, количество портов. Ето нужно считать с файла, отсортировать за приоритетом и ценой и даные о каждом припоре записать в отдельный файл Плс помогите очень прошу
C++ Глобальная переменная http://www.cyberforum.ru/cpp-beginners/thread1135420.html
#include "stdafx.h" #include "locale" #include "iostream" #include "conio.h" using namespace::std; int count = -1; void swap(); int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL, "Russian");
C++ Определить есть ли в записи числа заданная цифра, и найти количество ее повторений Здравствуйте! На начале обучения ломаю голову как решить следующие задачи с маленькими знаниями в С++ : 1. Определить есть ли в его записи заданная цифра, и найти ее кол-во повторений. подробнее

Показать сообщение отдельно
baduk
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 6
01.04.2014, 02:09     Бинарный файл, не проходит проверка
вообщем делаю курсовую, нужно создать базу данных которая из текстового файла делает бинарный файл и потом следующая программа берет информацию из бинарного файла, вообщем с созданием бинарного файла вопросов нет вопрос по считыванию информации во второй программа, дело в том что в базе данных присутствует такая графа как пол человека, и мне нужно отбрать только женский пол, но проверка p.pol == 'ж' не срабатывает, подскажите как правильно записать эту проверку, я пробывал присваивать значение p.pol чаровской переменной и печатать ее, выводился квадрат с единицами и нулями, я так понял это из за бинарного файла, но как тогда сделать проверку, подскажите


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
#include <stdio.h>
#include <string.h>
#include "person.h"
#include "group.h"
float b; // группа с макс числом учениц с макс баллом
float x; // кол-во учениц в пред идущей группе
float r;
int n=0; // счетчик
float c; // номер группы второй цикл
float q=0; // номер группы
float m=0; // макс сред балл
int main(int argc, char * argv[])
{
    FILE * file;
    file = fopen(argv[1], "r");
    int i;
    int table = 0;
 
    struct group g[8];
    memset(g, 0, sizeof(g));
 
    if (argc >= 3)
        if (argv[2][1] == 't')
            table = 1;
 
    person p;
    printf("--------------------|---------|--------|-------|-------|-------|--------|---------|\n");
        printf("Фамилияя            |   пол   | Группа | Матан | Инфа  | Линал | Дискра | История |\n");
    while (fread(&p, 1, sizeof(person), file))
    {     
                                      
        float tmp = (p.dm + p.his + p.inf + p.matan + p.linal) / 5.0f;
        if (tmp>=m && p.pol == 'ж') {m = tmp; q=p.groupID;} n++;
        
                         //фамилия           пол       группа  матан    инфа      линал  дискра   история
            printf("--------------------|---------|--------|-------|-------|-------|--------|---------|\n");
            printf("%-*s|    %s    |   %d    |    %d  |    %d  |    %d  |    %d   |     %d   |\n",
                   (int)strlen(p.name) + 20 - (int)strlen(p.name) / 2,
                   p.name,
                                   p.pol,
                   p.groupID,
                   p.matan,
                   p.inf,
                   p.linal,
                   p.dm,
                   p.his);
        
}   
    
           printf("--------------------|---------|--------|-------|-------|-------|--------|---------|\n");
        
    
            printf ("максимальный средний балл у студенток  %.2f\n%.0f-номер группы\n%d число студентов\n", m, q, n);
fclose (file);
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru