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

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

Войти
Регистрация
Восстановить пароль
 
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
#1

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

30.10.2013, 23:57. Просмотров 453. Ответов 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 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 23:57     из файла допустим список ФИО(const char* FileName = "FIO.txt"), вытащить одну из сочетаний ФИО
Посмотрите здесь:

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" - C++
for(int i = 0; i&lt; 5; i++) { wr_struc (list); if (strcmp(&amp;list.Sostav,osn_sostav)==0 &amp;&amp; strcmp(&amp;list.MestoVkomande,attack)==0...

Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" - C++
Писал программу. Дошел до наложения текстур. Пытаюсь наложить 4-й час. Много разных ошибок. Все ошибки гуглил. На данный момент ошибка...

Несовместимые типы операндов "char" и "const char*" - C++
В чем проблема?

Аргумент типа "unsigned char*" несовместим с параметром типа "const char*" - C++
int f(unsigned char s, unsigned char q) { N = strlen(s); //Ошибка тут... M = strlen(q); //...и тут Как исправить?

invalid conversion from "const char*" to "char" - C++
Помогите, пожалуйста, найти проблему. Arguments.h #include&lt;iostream&gt; class Arguments { public: Arguments(int iArgc,...

Невозможно преобразовать "const char" в "char" - C++
Вот код: void vvod() { char name_of_file; int i; char linetype1; char linetype2; int razmer_pera; struct colour {

Работа с файлами (вывести в текстовый файл "g.txt" любую цифру из исходного файла "f.txt" с сохранением строгого порядка) - C++
Помогите с задачей. Надо вывести в текстовый файл &quot;g.txt&quot; любую цифру из исходного файла &quot;f.txt&quot; с сохранением строгого...

Создать класс "ведомость абитуриентов" (ФИО, адрес, оценки по трем предметам) - C++
Создать класс, в котором определены поля и методы класса: конструктор с параметрами, конструктор без параметров, ввод и вывод данных....

Error: значение типа "const char" нельзя присвоить сущности типа "double" - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt;// using namespace std; void main(void) { const int k=5; int a=10; unsigned int...

Используя структуру с полями пол, ФИО, возраст, распечатать количество парней , фамилии которых начинаются на "Д" и призывного возраста... - C++
Используя структуру с полями пол, ФИО, возраст, распечатать количество парней , фамилии которых начинаются на &quot;Д&quot; и призывного возраста.......


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

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

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