Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как записать данные структуры в файл.  (Прочитано 4752 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kukurhma
Новенький

ua
Offline Offline

« : 12-05-2018 17:06 » 

Как данные из функции AddInfo() Записать в файл помогите Да-да

Код: (C++)
#include <Windows.h>
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;


//обьявление структуры
struct Department1
{
        char NameOfSpecialist[100];
        char NameOfFamily1[40];
        char NameOfFamily2[40];
        char NameOfFamily3[40];
        int ChildrenInDepartment;
};

//прототипы ф-ций
void AddInfo(Department1*Dep, int k);
void Searchname(Department1*Dep, int k, char *name);
void ShowAllDepartments(Department1*Dep, int k);

//главная программа
void main()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        int k;
        cout << "Введите кол-во отделов:\n";
        cin >> k;
        Department1*Dep = new Department1[k];
        char name[20], Category[20], choice;

        //меню
        do {
                cout << "Выберите требуемое действие:\n1-Добавить информацию о отделе...\n2-Поиск информации по куратору...\n";
                cout << "3-Поиск по куратору...\n6-Показать всю информацию...\n7-Выход...\n";
                cin >> choice;
                switch (choice) {
                case '1':
                        AddInfo(Dep, k);
                        break;
                case '2':
                        cout << "Введите имя куратора \n";
                        cin >> name;
                        Searchname(Dep, k, name);
                        break;
                case '6':
                        ShowAllDepartments(Dep, k);
                        break;
                case '7':
                        exit(0);
                        break;
                default:
                        cout << "Неправильный выбор\n";
                        break;
                }
        } while (choice != '7');
}

//ф-ция добавления информации
void AddInfo(Department1*Dep, int k)
{
        for (int i = 0; i<k; i++) {
                cout << "======  Отдел № " << i + 1 << "=====" << endl;
                cout << "Введите Имя куратора";
                cin >> Dep[i].NameOfSpecialist;
                cout << "\n";
                cout << "Введите инициплы первой семьи :";
                cin >> Dep[i].NameOfFamily1;
                cout << "\n";
                cout << "Введите инициплы второй семьи :";
                cin >> Dep[i].NameOfFamily2;
                cout << "\n";
                cout << "Введите инициплы третьей семьи :";
                cin >> Dep[i].NameOfFamily3;
                cout << "\n";
                cout << "Введите колличество детей в отделении:";
                cin >> Dep[i].ChildrenInDepartment;
                cout << "\n";
                cout << "\n" << endl;
        }
}

/*ф-ция поиска по названию*/
void Searchname(Department1*Dep, int k, char *name)
{
        for (int i = 0; i<k; i++) {
                if (_stricmp(name, Dep[i].NameOfSpecialist) == 0) {
                        cout << "Информация с Куратором " << i + 1 << " Отдела " << Dep[i].NameOfSpecialist << "\n";
                        cout << "Первая семья: " << Dep[i].NameOfFamily1 << "\n";
                        cout << "Вторая семь: " << Dep[i].NameOfFamily2 << "\n";
                        cout << "Третья семья: " << Dep[i].NameOfFamily3 << "\n";
                        cout << "Колличество детей в отделе: " << Dep[i].ChildrenInDepartment << "\n";
                        cout << "=====================================\n";
                }
                else
                        cout << "\n";
        }

}

//ф-ция показа всех фильмов
void ShowAllDepartments(Department1*Dep, int k)
{
        for (int i = 0; i<k; i++) {
                cout << "Куратор: " << Dep[i].NameOfSpecialist << "\n";
                cout << "Первая семья: " << Dep[i].NameOfFamily1 << "\n";
                cout << "Вторая семья: " << Dep[i].NameOfFamily2 << "\n";
                cout << "Третья семья: " << Dep[i].NameOfFamily3 << "\n";
                cout << "Колличество детей в отделе: " << Dep[i].ChildrenInDepartment << "\n";
                if ((Dep[i].ChildrenInDepartment) <= 2)
                {
                        cout << "Категория: Средняя" << endl;
                }
                cout << "=================================\n";
        }
}
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 12-05-2018 20:31 » new

Код длы затравки
Код: (C++)
#include <iostream>
#include <fstream>
#include <string.h>
const char* filename = "test.txt";

struct Department1
{
        char NameOfSpecialist[100];
        char NameOfFamily1[40];
        char NameOfFamily2[40];
        char NameOfFamily3[40];
        int ChildrenInDepartment;
};

bool save(const Department1& vel) {
        bool res = false;
        std::fstream fs;
        fs.open(filename, std::fstream::out | std::fstream::app);
        if (fs.good()) {
            fs << vel.NameOfSpecialist<< std::endl;
                fs << vel.NameOfFamily1<< std::endl;
                fs << vel.NameOfFamily2<< std::endl;
                fs << vel.NameOfFamily3<< std::endl;
                fs << vel.ChildrenInDepartment<< std::endl;
                res = fs.good();
                fs.close();
        }
        return res;
}
bool load(Department1& vel) {
        bool res = false;
        std::fstream fs;
        fs.open(filename, std::fstream::in);
        if (fs.good()) {
            fs >> vel.NameOfSpecialist;
                fs >> vel.NameOfFamily1;
                fs >> vel.NameOfFamily2;
                fs >> vel.NameOfFamily3;
                fs >> vel.ChildrenInDepartment;
                res = fs.good();
                fs.close();
        }
        return res;
}

void print(const Department1& vel) {
        std::cout << vel.NameOfSpecialist << std::endl;
        std::cout << vel.NameOfFamily1 << std::endl;
        std::cout << vel.NameOfFamily2 << std::endl;
        std::cout << vel.NameOfFamily3 << std::endl;
        std::cout << vel.ChildrenInDepartment << std::endl;
}

int main() {
        Department1 deptemp;
        strcpy(deptemp.NameOfSpecialist, "Doctor");
        strcpy(deptemp.NameOfFamily1,  "One");
        strcpy(deptemp.NameOfFamily2,  "Two");
        strcpy(deptemp.NameOfFamily3, "Three");
        deptemp.ChildrenInDepartment=4;
        print(deptemp);
        save(deptemp);
        Department1 dep;
        load(dep);
        print(dep);
        return 0;
}
Не доработан, например нету выставления точки считывания информации из файла.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines