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

из файла допустим список ФИО(const char* FileName = "FIO.txt"), вытащить одну из сочетаний ФИО - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверить возможность построения пятиугольника, изображенного на рисунке и найти его площадь http://www.cyberforum.ru/cpp-beginners/thread993235.html
Друзья, очень нужна Ваша помощь! Не получается верно (в синтаксическом плане) написать вот такую вот программку на СИ++ Даны действительные числа a, b, c, d. Проверить возможность построения пятиугольника, изображенного на рисунке (рисунок прилагаю) и найти его площадь. Проверку возможности существования треугольника и вычисление его площади по трем сторонам организовать в подпрограмме. ...
C++ Дана квадратная матрица порядка M. Повернуть ее на 90о, 180о, 270о в положительном направлении Дана квадратная матрица порядка M. Повернуть ее на 90о, 180о, 270о в положительном направлении. http://www.cyberforum.ru/cpp-beginners/thread993220.html
C++ Найти сумму всех элементов массива, имеющих четные индексы
Найти сумму всех элементов массива, имеющих четные индексы.
C++ Составить программу приближенного вычисления площади фигуры
Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями. Использовать метод прямоугольников. Для построения прямоугольника использовать левый конец отрезка. y = 3x2 − 4x + 2, y = 20 − x.
C++ Красные и черные деревья http://www.cyberforum.ru/cpp-beginners/thread993211.html
Здравствуйте! Помогите пожалуста. Не компилируется программа, ошибка в 159 строке. вот код : #include<stdio.h> #include<conio.h> #include<stdlib.h> #define NIL &sentinel typedef int T; /* type of item to be sorted */ #define compLT(a,b) (a < b) #define compEQ(a,b) (a == b)
C++ Две точки на плоскости даны координатами. Выдать на экран терминала уравнение прямой линии Две точки на плоскости даны координатами. Выдать на экран терминала уравнение прямой линии. подробнее

Показать сообщение отдельно
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133

из файла допустим список ФИО(const char* FileName = "FIO.txt"), вытащить одну из сочетаний ФИО - C++

30.10.2013, 23:57. Просмотров 456. Ответов 0
Метки (Все метки)

Так вот, задача в следующем, надо из файла допустим список ФИО(const char* FileName = "FIO.txt"), вытащить одну из сочетаний ФИО, с использованием исключительно char. Пробовал со string получилось, но для char не допру. Плюс к тому, надо будет таким же способом получать данные из другого файла об образовании, получать с помощью рандома, и при подключении второго файла выходит так что данные он считывает как-то непонятным образом

Должно быть так:
ФИО: Иванов Иван Иванович
Образование: Высшее

ФИО: Сидоров Игорь Сидорович
Образование: Средне специальное

ФИО: Игнатьев Олег Майданович
Образование: Незаконченное высшее
Но часто мне подсовывают вот такую собаку:
ФИО: Иванов Иван Иванович
Образование: Высшее

ФИО: Иванов Иван Иванович
Образование: Средне специальное

ФИО: Иванов Иван Иванович
Образование: Незаконченное высшее

ФИО: Незаконченное высшее
Образование: Незаконченное высшее
Не понимаю почему совершенно, почему функция возвращает каждый раз одно и то же сочетание ФИО в итоге, и отправляет в ФИО другие данные, что происходит не так не пойму.

Сама функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string GetDataOfFile(const char *FileName) {
    string line;
    vector<string> lines;
 
    ifstream labfile(FileName);
 
    if (!labfile.is_open())
        cout << "Ошибка! Поток не открыт!" << endl;
    else {
        while(getline(labfile,line)) {
            try {
                lines.push_back(line);//заполняем вектор
            } catch (...) {
                labfile.close();
                throw;
            }
        }
        srand(time(NULL));
        line = lines[rand()%lines.size()];
        lines.clear();
    }
    return line;
}
Сфера её применения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
for (int iter = 0; iter < StructSize; iter++) {
        
        UsrStruct[iter].id = iter + 1;
        
        FileName = "FIO.txt";
        UsrStruct[iter].fullname = GetDataOfFile(FileName);
        
        FileName = "education.txt";
        UsrStruct[iter].education = GetDataOfFile(FileName);
        
        UsrStruct[iter].expirience = rand()%20;
        
        if ((UsrStruct[iter].expirience >= 20) && (strcmp(UsrStruct[iter].education,"Высшее") == 0))
            UsrStruct[iter].appointment = "CEO";
        else if ((UsrStruct[iter].expirience >= 10) && (UsrStruct[iter].expirience <= 15) && (strcmp(UsrStruct[iter].education,"Высшее")==0))
            UsrStruct[iter].appointment = "Admin";
        else if ((UsrStruct[iter].expirience >= 5) && (UsrStruct[iter].expirience < 10) && (strcmp(UsrStruct[iter].education,"Высшее")==0))
            UsrStruct[iter].appointment = "Senior";
        else if((UsrStruct[iter].expirience >= 3) && (UsrStruct[iter].expirience < 5) && (((strcmp(UsrStruct[iter].education,"Средне-специальное")==0) || (strcmp(UsrStruct[iter].education,"Незаконченное-высшее")==0))))
            UsrStruct[iter].appointment = "Middle";
        else if ((UsrStruct[iter].expirience >= 0) && (((strcmp(UsrStruct[iter].education,"Незаконченное-средне-специальное")==0) || (strcmp(UsrStruct[iter].education,"Незаконченное-высшее")==0))))
            UsrStruct[iter].appointment = "Junior";
    }
Структура:
C++
1
2
3
4
5
6
7
struct StructEmployee {;
    int id;
    string fullname;
    string appointment;
    string education;
    int expirience;
}*UsrStruct;
Кроме этого, как я писал изначально, как возможно string заменить на char ?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru