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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Slavytuch
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 92
#1

Считывание одномерного массива - C++

21.05.2014, 17:39. Просмотров 203. Ответов 0
Метки нет (Все метки)

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
122
123
124
125
126
127
128
129
130
131
132
133
134
#include "stdafx.h"
#include "stdio.h"
#include <clocale>
#include <iomanip>
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
 
class sotrydnik
{//класс содержит поля:
    //name - имя,surname - фамилия,number - рабочий номер
private:
    string surname;
    string name;
    int number;
public:
    string get_surname()
    {//получение фамилии сотрудника
        return surname;
    }
    string get_name()
    {//получение фамилии сотрудника
        return name;
    }
    int get_number()
    {//получение номера сотрудника
        return number;
    }
    void set_data(string newsurname, string newname, int newnumber)
    {
        surname = newsurname;
        name = newname;
        number = newnumber;
    }
    friend ifstream &operator >> (ifstream &inp, sotrydnik & one);
    friend ostream &operator << (ostream &out, sotrydnik one);
};
class members
{public:
    string name1;
    sotrydnik * comrade;
    int number_of_coverents;
    friend ifstream &operator >> (ifstream &inp, members &one);
    friend ostream &operator << (ostream &out, members one);
    int shortest_number()
    {
        int num = comrade[0].get_number();
        for (int i = 1; i < number_of_coverents;++i)
        if (comrade[i].get_number()<num)
            num = comrade[i].get_number();
        return num;
    }
    int* same_name()
    {
        int rez[5];
        int c = 0;
        for (int i = 0; i < number_of_coverents;++i)
        if (comrade[i].get_name() == name1)
        {
            rez[c++] = i;
        }
        c++;
        rez[c] = -1;
        for (int i = 0; i < c; ++i)
        {
            rez[i];
        }
        system("pause");
        return rez;
    }
 
};
 ifstream &operator >> (ifstream &inp, sotrydnik & one)
{
    string newsurname, newname;
    int newnumber;
    inp >> newsurname;
    inp >> newname;
    inp >> newnumber;
    one.set_data(newsurname, newname, newnumber);
    return inp;
}
 ostream &operator <<(ostream& out, sotrydnik one)
 {
     out << setw(10) << one.get_surname() << setw(10) << one.get_name() << setw(10) << one.get_number() << endl;
     return out;
 }
 
 ifstream &operator >> (ifstream &inp, members & one)
 {
     
     inp >> one.number_of_coverents;
     one.comrade = new sotrydnik[one.number_of_coverents];
     for (int i = 0; i < one.number_of_coverents; ++i)
     {
         inp>>one.comrade[i];
     }
     inp >> one.name1;
     return inp;
 }
 
 ostream &operator <<(ostream &out, members one)
 {
     for (int i = 0; i < one.number_of_coverents; ++i)
         out << one.comrade[i];
     return out;
 }
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    members Men;
    cout << "Начальные данные сотрудников:" << endl;
    int num, c = 0;
    string name1;
    ifstream read("C:\\Logan\\InputFile.txt");
    read >> Men;
    ofstream outp("C:\\Logan\\OutputFile.txt");
    cout << setw(10) << "Фамилия" << setw(10) << "Имя" << setw(10) << "Номер" << endl << endl;
    cout << Men;
    read.close();
    cout << "Самый котороткий рабочий номер = ";
    cout << Men.shortest_number();
    cout << "Фамилии сотрудников с именем " << name1 << ":" << endl;
    int *rez = Men.same_name();
    for (int i = 0; rez[i]!= -1; ++i)
        cout << Men.comrade[rez[i]].get_surname();
       system("pause>>end");
     
   return 0;
}
При выводе на экран массива в ф-ции same_names ничего не пишет, а при дальнейшей работе программы выходит вообще за пределы. Дин. массивы не хотят создаваться - выделяется не более 1 ячейки. Чё не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 17:39     Считывание одномерного массива
Посмотрите здесь:

Считывание одномерного массива из файла - C++
Доброго времени суток! Проблема в следующем: 1. Кусочек кода из main() case 2: { file(data); delete data; ...

Считывание одномерного массива из файла. Оценка о-сложности алгоритма - C++
Добрый вечер. Есть программа, собственно что она делает не так уж и важно, но в ней я задаю массив вручную, просьба переделать ее так, что...

запись массива в строку - считывание массива из строки. - C++
Под unix на си(не с++). Посоветуйте, как можно реализовать(меня интересуют функции, которые можно использовать для этого)): Есть...

Считывание массива из файла - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main () { int i,j; int matr1; FILE *f1;

Считывание массива из файла - C++
Здравствуйте. Прочитал кучу форумов, но нигде не нашел ответа на свой вопрос. Имеется текстовый в котором хранится прямоугольная...

Считывание массива из файла - C++
Помогите, пожалуйста с заданием. Дедлайн завтра. Не пойму как реализовать ( Надеюсь на Вашу помощь. спасибо. Из файла (имя файла...

Считывание массива char - C++
Есть такой кусок кода, при выполнение не считывается массив name, а сразу просит ввести country. #define _CRT_SECURE_NO_WARNINGS ...

Считывание массива объектов из файла - C++
Здравствуйте! Надеюсь на вашу помощь. Задача состоит в том, чтоб считать из файла данные и поместить каждую строку в новый объект, для...

Считывание из файла массива данных - C++
подскажите как исправить, данная программа считывает и выводит только первый объект. а необходимо, чтобы все, находящиеся во входном файле ...

Считывание из файла массива строк - C++
Ув. товарищи! Помогите плз. Нужно реализовать функцию, заполняющую из файла массив строк. Что то типа такого: bool...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru