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

Как вынести отдельные части кода в header-файл? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
ewenso
 Аватар для ewenso
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 25
01.04.2012, 00:17     Как вынести отдельные части кода в header-файл? #1
Вообщем у меня есть .cpp файл с программой.
Вопрос в том, как вынести отдельные части кода в .h файл

Вот основной код.
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
#include<iostream>
#include<fstream>
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
using namespace std;
 
 
int main()
{
    cout << " Choose your choise " << endl;
    cout << " 1.Put informacion " << endl;
    cout << " 2.Find informacion " << endl;
    cout << " 3.Show all list " << endl;
    cout << " 4.exit " << endl;
    int a;
    int n;
    int k=0;
    cout << " Plesea put number: ";
        cin >> a;
struct informacii
{
    char Surname[30];
    char Address[40];
    int telefon;
};
        switch(a)
        {
 
        case 1:
            {
                ofstream outfile("Informacion.txt");
                if (!outfile)
                    cout << "File open error" << endl;
                else
                {
                    cout << "File Successfully opened " << endl;
                    struct informacii People[20];
                    int i,n;
                    cout << "how many people " << endl;
                    cin >> n;
                    for(i=0; i<n; i++)
                    {
                        cout << " Surname " << endl;
                        cin >> People[i].Surname;
                        cin.getline(reinterpret_cast<char*>(People[i].Surname),sizeof(char));
                        outfile.write(reinterpret_cast<char*>(People[i].Surname),sizeof(char));
                        outfile.put('\n');
 
                        cout << " Address " << endl;
                        cin >> People[i].Address;
                        cin.getline(reinterpret_cast<char*>(People[i].Address),sizeof(char));
                        outfile.write(reinterpret_cast<char*>(People[i].Address),sizeof(char));
                        outfile.put('\n');
 
                        cout << " Telefon " << endl;
                        cin >> People[i].telefon;
                        cin.getline(reinterpret_cast<char*>(People[i].telefon),sizeof(int));
                        outfile.write(reinterpret_cast<char*>(People[i].telefon),sizeof(int));
                        outfile.put('\n');
 
 
                    }
                    outfile.close();
                    cout << "File successfully closed" << endl;
                }
            }
            break;
как вынести и подключить вот эту часть из основного файла
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
switch(a)
        {
 
        case 1:
            {
                ofstream outfile("Informacion.txt");
                if (!outfile)
                    cout << "File open error" << endl;
                else
                {
                    cout << "File Successfully opened " << endl;
                    struct informacii People[20];
                    int i,n;
                    cout << "how many people " << endl;
                    cin >> n;
                    for(i=0; i<n; i++)
                    {
                        cout << " Surname " << endl;
                        cin >> People[i].Surname;
                        cin.getline(reinterpret_cast<char*>(People[i].Surname),sizeof(char));
                        outfile.write(reinterpret_cast<char*>(People[i].Surname),sizeof(char));
                        outfile.put('\n');
 
                        cout << " Address " << endl;
                        cin >> People[i].Address;
                        cin.getline(reinterpret_cast<char*>(People[i].Address),sizeof(char));
                        outfile.write(reinterpret_cast<char*>(People[i].Address),sizeof(char));
                        outfile.put('\n');
 
                        cout << " Telefon " << endl;
                        cin >> People[i].telefon;
                        cin.getline(reinterpret_cast<char*>(People[i].telefon),sizeof(int));
                        outfile.write(reinterpret_cast<char*>(People[i].telefon),sizeof(int));
                        outfile.put('\n');
 
 
                    }
                    outfile.close();
                    cout << "File successfully closed" << endl;
                }
            }
            break;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.04.2012, 00:46     Как вынести отдельные части кода в header-файл? #2
Во-первых твоя программа обрывается на середине кода
Далее для начала разбей программу на функции:
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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include "inforecorder.h"//новый заголовок!!!!
void RecordInfo(){
 ofstream outfile("Informacion.txt");
                if (!outfile)
                    cout << "File open error" << endl;
                else
                {
                    cout << "File Successfully opened " << endl;
                    struct informacii People[20];
                    int i,n;
                    cout << "how many people " << endl;
                    cin >> n;
                    for(i=0; i<n; i++)
                    {
                        cout << " Surname " << endl;
                        cin >> People[i].Surname;
                        cin.getline(reinterpret_cast<char*>(People[i].Surname),sizeof(char));
                        outfile.write(reinterpret_cast<char*>(People[i].Surname),sizeof(char));
                        outfile.put('\n');
 
                        cout << " Address " << endl;
                        cin >> People[i].Address;
                        cin.getline(reinterpret_cast<char*>(People[i].Address),sizeof(char));
                        outfile.write(reinterpret_cast<char*>(People[i].Address),sizeof(char));
                        outfile.put('\n');
 
                        cout << " Telefon " << endl;
                        cin >> People[i].telefon;
                        cin.getline(reinterpret_cast<char*>(People[i].telefon),sizeof(int));
                        outfile.write(reinterpret_cast<char*>(People[i].telefon),sizeof(int));
                        outfile.put('\n');
 
 
                    }
                    outfile.close();
                    cout << "File successfully closed" << endl;
}
Во-вторых создай в проекте новый файл inforecorder.cpp Создай его через меню Project>Add New Item>cpp file
В него перемести функцию и подключи необходимые файлы, одним словом, весь текст выше.

Этого достаточно и описание функции можно делать в основном файле, но я советую создать ещё один файл в проекте inforecorder.h (Project>Add New Item>header file)
в него ты перемещаешь описание структуры и объявление функции.
C++
1
2
3
4
5
6
7
struct informacii
{
    char Surname[30];
    char Address[40];
    int telefon;
};
void RecordInfo();
Вот и всё! весь скопированный код удаляешь из функции main и вообще основного файла и добавляешь в него заголовок
C++
1
#include "inforecorder.h "
всё надеюсь ты в visual studio работаешь, а то я не поинтересовался перед тем как объяснять
ewenso
 Аватар для ewenso
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 25
01.04.2012, 01:06  [ТС]     Как вынести отдельные части кода в header-файл? #3
То что обрывается знаю, тут только 1 кейс. да работаю в студии

Добавлено через 7 минут
Спасибо но не допер. Будем разбираться.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.04.2012, 01:15     Как вынести отдельные части кода в header-файл? #4
Что не допёр? Разбей программу на отдельные функции говорю. Сделай это хотя бы без разбития на несколько файлов! В чём проблема?
Yandex
Объявления
01.04.2012, 01:15     Как вынести отдельные части кода в header-файл?
Ответ Создать тему
Опции темы

Текущее время: 13:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru