С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
1

Почему не работает код?

05.12.2020, 20:34. Показов 1072. Ответов 29

Author24 — интернет-сервис помощи студентам
Массив структур содержит информацию о 30 студентов: фамилия; имя; номер группы; адрес прописки; пол. Считать данные с файла и подсчитать количество студентов, которые прописаны на заданной с клавиатуры улице.

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
[CODE]#include<iostream>
#include<Windows.h>
#include<fstream>
#include <string>
#include<cstring>
using namespace std;
struct Students
{
    char name[20];
    char surname[20];
    char adress[40];
    char gender[15];
    int numberofgroup;
};
 
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    bool ReadFile(Students * &arr_Students, int& size);
    void print(Students * arr_Students, int size);
 
    int size;
    Students* arr_Students;
    if (ReadFile(arr_Students, size))
        print(arr_Students, size);
    else
        cout << "Error opening file!" << endl;
 
    cin.get();
    return 0;
}
 
bool ReadFile(Students*& arr_Students, int& size)
{
    ifstream fin("Students.txt");
    if (!fin)
        return false;
 
    (fin >> size).get();
 
    arr_Students = new Students[size];
 
    for (int i = 0; i < size; i++)
    {
 
        fin.getline(arr_Students[i].name, 20);
        fin.getline(arr_Students[i].surname, 20);
        fin.getline(arr_Students[i].adress, 40);
        fin.getline(arr_Students[i].gender, 15);
        fin >> arr_Students[i].numberofgroup;
        fin >> arr_Students[i].adress;
        fin.get();
        return true;
 
 
    }
    fin.close();
 
}
void print(Students* arr_Students, int size)
{
    for (int i = 0; i < size; i++)
    {
        cout << arr_Students[i].name << endl;
        cout << arr_Students[i].surname << endl;
        cout << arr_Students[i].adress << endl;
        cout << arr_Students[i].gender << endl;
        cout << arr_Students[i].numberofgroup << endl;
        cout << endl;
    }
    char street[40];
 
    cout << "enter street: ";
    cin >> street;
 
    for (int i = 0; i < size; i++)
    {
        if (strcmp(street, arr_Students[i].adress) == 0)
            cout << "Number of student who live in street: " << size << endl;
    }
}[/CODE]
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2020, 20:34
Ответы с готовыми решениями:

Почему не работает код на других компьютерах (на моем работает)?
вот задание: построить ф-ю: на вход поступают 2 строки, на выходе 1 строка, по следующим правилам:...

почему код не работает?
помогите пожалуйста, почему у меня код не работает? Ввожу &quot;х&quot;, потом погрешность, а arth всегда...

Почему код не работает?
#include &lt;ctime&gt; #include &quot;std_lib_facilities.h&quot; int main() { vector &lt;int&gt; aaa;...

Почему не работает код?
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include &lt;iostream&gt; using namespace std;...

29
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
05.12.2020, 20:59 2
Приложить нужно было содержимое файла с данными...
0
0 / 0 / 0
Регистрация: 05.12.2020
Сообщений: 4
05.12.2020, 21:01 3
А в самом файле что находится? Угадать нужно?)
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
05.12.2020, 21:12  [ТС] 4
Василий
Петрович
Липовая, 44
Мужчина
3

Василий
Петрович
Липовая, 44
Мужчина
1

Василий
Петрович
Липовая,44
Мужчина
2

Василий
Петрович
Липовая,44
Мужчина
12

Василий
Петрович
Липовая,44
Мужчина
4

Василий
Петрович
Липовая,44
Мужчина
5
0
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
05.12.2020, 21:50 5
Размер списка выведи...
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
05.12.2020, 22:00 6
Цитата Сообщение от Andriyipz Посмотреть сообщение
bool ReadFile(Students*& arr_Students, int& size)
{
    ifstream fin("Students.txt");
    if (!fin)
        return false;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool ReadFile(Students*& arr_Students, int& size)
{
    arr_Students = new Students[100];
    size = 0;
 
    ifstream fin("Students.txt");
    while (fin >> arr_Students[size].name)
    {
        fin >> arr_Students[size].surname;
        fin >> arr_Students[size].adress;
        fin >> arr_Students[size].gender;
        fin >> arr_Students[size].numberofgroup;
 
        ++size;
        if (size >= 100)
            break;
    }
    return true;
}
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
06.12.2020, 09:55  [ТС] 7
Все равно не работает
0
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
06.12.2020, 11:09 8
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
struct Students
{
    char name[20];
    char surname[20];
    char adress[40];
    char gender[15];
    int numberofgroup;
};
 
int main()
{
    int index = 0;
    int size = 30;
    char buf[10];
    
    Students students[size];
    ifstream file("file.txt");
    while (file.getline(students[index].name, 20)) {
        file.getline(students[index].surname, 20);
        file.getline(students[index].adress, 40);
        file.getline(students[index].gender, 15);
        file.getline(buf, 10);
        students[index].numberofgroup = atoi(buf);
        file.get();
        index++;
    }
    file.close();
    
    for (int i = 0; i < size; i++) {
        cout << i + 1 << endl;
        cout << students[i].name << endl;
        cout << students[i].surname << endl;
        cout << students[i].adress << endl;
        cout << students[i].gender << endl;
        cout << students[i].numberofgroup << endl;
        cout << endl;
    }
}
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
06.12.2020, 11:16 9
Цитата Сообщение от Andriyipz Посмотреть сообщение
Все равно не работает
Да неужели? Не пытался понять, что именно не работает?
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
06.12.2020, 11:50  [ТС] 10
Выводит только одну структуру и не выводит количество людей, живущих на введенной с клавиатуры улице?
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
06.12.2020, 11:52 11
Цитата Сообщение от Andriyipz Посмотреть сообщение
Выводит только одну структуру и не выводит количество людей, живущих на введенной с клавиатуры улице?
Покажи, как сделал
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
06.12.2020, 11:55  [ТС] 12
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
#include<iostream>
#include<Windows.h>
#include<fstream>
#include <string>
#include<cstring>
using namespace std;
struct Students
{
    char name[20];
    char surname[20];
    char adress[40];
    char gender[15];
    int numberofgroup;
};
 
 
bool ReadFile(Students*& arr_Students, int& size)
{
    arr_Students = new Students[100];
    size = 0;
 
    ifstream fin("Students.txt");
    while (fin >> arr_Students[size].name)
    {
        fin >> arr_Students[size].surname;
        fin >> arr_Students[size].adress;
        fin >> arr_Students[size].gender;
        fin >> arr_Students[size].numberofgroup;
 
        ++size;
        if (size >= 100)
            break;
    }
    return true;
}
void print(Students* arr_Students, int size)
{
    for (int i = 0; i < size; i++)
    {
        cout << arr_Students[i].name << endl;
        cout << arr_Students[i].surname << endl;
        cout << arr_Students[i].adress << endl;
        cout << arr_Students[i].gender << endl;
        cout << arr_Students[i].numberofgroup << endl;
        cout << endl;
    }
    char street[40];
 
    cout << "enter street: ";
    cin >> street;
 
    for (int i = 0; i < size; i++)
    {
        if (strcmp(street, arr_Students[i].adress) == 0)
            cout << "Number of student who live in street: " << size << endl;
    }
}
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    bool ReadFile(Students * &arr_Students, int& size);
    void print(Students * arr_Students, int size);
 
    int size;
    Students* arr_Students;
    if (ReadFile(arr_Students, size))
        print(arr_Students, size);
    else
        cout << "Error opening file!" << endl;
 
    cin.get();
    return 0;
}
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
06.12.2020, 12:10 13
Цитата Сообщение от Andriyipz Посмотреть сообщение
bool ReadFile(Students*& arr_Students, int& size)
C++
1
2
3
4
5
6
7
8
9
    while (fin >> arr_Students[size].name)
    {
        fin >> arr_Students[size].surname;
        
        fin.ignore();
        fin.getline(arr_Students[size].adress, std::size(arr_Students[size].adress));
 
        fin >> arr_Students[size].gender;
        fin >> arr_Students[size].numberofgroup;
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
06.12.2020, 12:15  [ТС] 14
Cпасибо, выводит структуры, но не выводит количество людей, проживающих на введенной с клавиатуры улице?
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
06.12.2020, 12:18 15
Цитата Сообщение от Andriyipz Посмотреть сообщение
Cпасибо, выводит структуры, но не выводит количество людей, проживающих на введенной с клавиатуры улице?
Потому что здесь тоже сделал неправильно
Цитата Сообщение от Andriyipz Посмотреть сообщение
cout << "enter street: ";
    cin >> street;
for (int i = 0; i < size; i++)
    {
        if (strcmp(street, arr_Students[i].adress) == 0)
            cout << "Number of student who live in street: " << size << endl;
    }
0
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
06.12.2020, 12:18 16
Улице или доме, учтите что в строке еще и номер дома...
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
06.12.2020, 12:20  [ТС] 17
Как нужно сделать?
0
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
06.12.2020, 13:16 18
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
#include <iostream>
 
using namespace std;
 
bool mystrcmp(char* street, char* mystreet) {
    if (strlen(street) < strlen(mystreet))
        return false;
    for (int i = 0; i < strlen(mystreet); i++) {
        if (street[i] != mystreet[i])
            return false;
    }
    return true;
}
 
 
int main()
{
    char* street = "Липовая, 44";
    char* mystreet = "Липовая";
    
    //Не прокатит...
    cout << strcmp(street, mystreet) << endl;
    
    //Можно так:
    if (mystrcmp(street, mystreet))
        cout << "Yes";
    else
        cout << "No";
}
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
06.12.2020, 15:28  [ТС] 19
я сделал через счетчик, но когда ввожу улицу, но оно n не увеличивает почему так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char street[40];
 
    cout << "enter street: ";
    cin >> street;
    int n=0;
 
    for (int i = 0; i < size; i++)
    {
        if (strcmp(street, arr_Students[i].adress) == 0) {
            n++;
            
        }
        printf("n=", n);
    }
}
0
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
06.12.2020, 20:55 20
Andriyipz, использовать нужно мою функцию, что написал выше, если нужно использовать strcmp, то сначала нужно разделить строку strtok и т.п.
0
06.12.2020, 20:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2020, 20:55
Помогаю со студенческими работами здесь

Почему не работает код?
можете подсказать почему мой код не работает правильно ??? задача вот в чем Вход программы...

Почему не работает код?
Я начинающий в программировании, решил сделать небольшой калькулятор для практики, и не понимаю что...

Почему код не работает?
#include &lt;iostream&gt; using namespace std; unsigned long double* remove(unsigned long double*...

Почему не работает код?
можете подсказать почему мой код не работает? задача, из файла читаются футбольные команды и...

Почему не работает код?
подскажите пожалуйста почему мой код не работает. от меня требуется отсортировать целые числа и...

Почему не работает код?
Может кто найдёт ошибку: #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru