Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2017, 20:15   #1
Onyschuck
 
Регистрация: 28.02.2016
Сообщений: 6
По умолчанию Работа с бинарними файлами

Помогите реализовать считывание с бинарного файла на экран.
Я уже уйму времени потратил на решения даного вопроса. У меня как не краказябры выводит, то вобще ничего не выводит.
Вот код:
Код:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
 
using namespace std;
 
struct Work
{
    string surname;
    int age;
    string education;
    string job;
    string sex;
};
 
void Init(Work *arr, const int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << "Работник №" << i + 1 << endl;
        cout << "Введите фамилию: ";
        cin >> arr[i].surname;
        cout << "Введите возраст: ";
        cin >> arr[i].age; cin.ignore();
        cout << "Введите образование ";
        cin >> arr[i].education;
        cout << "Введите должность: ";
        cin >> arr[i].job;
        cout << "Введите пол: ";
        cin >> arr[i].sex;
    }
}
 
void CheckAndPrint(Work *arr, const int n)
{
    for (int i = 0; i < n; i++)
    {
        if (arr[i].age == 55 && arr[i].sex == "woman" && (arr[i].education == "-" || arr[i].education == "without" || arr[i].education == "no"))
        {
            cout << arr[i].surname << " | " << arr[i].age << " | " << arr[i].education << " | " << arr[i].job << " | " << arr[i].sex << endl;
        }
    }
}
 
void Write(Work *arr, const int n)
{
    ofstream file("file.txt",ios::binary | ios::in);
    for (int i = 0; i < n; i++)
    {
        file.write((char*)&arr[i].surname, sizeof arr[i].surname);
        file.write((char*)&arr[i].age, sizeof arr[i].age);
        file.write((char*)&arr[i].education, sizeof arr[i].education);
        file.write((char*)&arr[i].job, sizeof arr[i].job);
        file.write((char*)&arr[i].sex, sizeof arr[i].sex);
    }
    file.close();
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    cout << "Введите кол-во работников: ";
    int n;
    cin >> n;
    Work *arr = new Work[n];
    Init(arr, n);
    Write(arr, n);
    CheckAndPrint(arr, n);
    delete[] arr;
    system("pause");
    return 0;
}

Последний раз редактировалось Onyschuck; 27.09.2017 в 22:20.
Onyschuck вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа(очень простая) Структуры, работа с файлами yurda Фриланс 2 11.06.2016 08:44
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами prem1era Общие вопросы C/C++ 1 05.12.2013 13:13
Работа с файлами Эммануэль Помощь студентам 13 23.03.2011 12:48
Работа с файлами cranxx Общие вопросы C/C++ 2 17.02.2011 19:34