Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 1
Регистрация: 25.10.2015
Сообщений: 25
1

Считывание пустой строки

05.02.2017, 01:20. Показов 1413. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени!
Из Прата еcть такая задача:
Следующее упражнение позволит попрактиковаться в написании функций,
работающих с массивами и структурами. Ниже представлен каркас программы.
Дополните его функциями, описанными в комментариях.
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
#include <iostream>
using namespace std;
const int SLEN = 30;
struct student
{
    char fullname[SLEN];
    char hobby[SLEN];
    int ooplevel;
};
// getinfo() принимает два аргумента: указатель на первый элемент
// массива структур student и значение int, представляющее
// количество элементов в массиве. Функция запрашивает и
// сохраняет данные о студентах. Ввод прекращается либо после
// наполнения массива, либо при вводе пустой строки в качестве
// имени студента. Функция возвращает действительное количество
//введенных элементов.
int getinfо(student pa[], int n);
// display]. () принимает в качестве аргумента структуру student
// и отображает ее содержимое.
void displayl(student st);
// display2() принимает адрес структуры student в качестве аргумента
// и отображает ее содержимое,
void display2(const student* ps);
// display3() принимает указатель на первый элемента массива
// структур student и количество элементов в этом массиве и
// отображает содержимое всех структур в массиве,
void display3(const student pa[], int n);
int main()
{
    cout « "Enter class size: ";
    int class_size;
    cin >> class_size;
    while (cin.getO != '\n')
        continue;
    366 Глава 7 student* ptr_stu = new student[class_size];
    int entered = getinfо(ptr_stu, class_size);
    for (int i = 0; i < entered; i + +)
    {
        displayl(ptr_stu[i]);
        display2(&ptr_stu[i]);
    }
    display3(ptr_stu, entered);
    delete[] ptr_stu;
    cout << "Done\n";
    return 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
#include <iostream>
using namespace std;
const int SLEN = 30;
struct student
{
    char fullName[SLEN];
    char hobby[SLEN];
    int oopLevel;
};
int getInfo(student pa[], int n);
void display1(student st);
void display2(const student* ps);
void display3(const student pa[], int n);
int main()
{
    cout << "Enter class size: ";
    int classSize;
    cin >> classSize;
    while (cin.get() != '\n')
        continue;
    student* stPtr = new student[classSize];
    int entered = getInfo(stPtr, classSize);
    for (int i = 0; i < entered; i++)
    {
        display1(stPtr[i]);
        display2(&stPtr[i]);
    }
    display3(stPtr, classSize);
    delete[] stPtr;
    cout << "Done";
    return 0;
}
int getInfo(student pa[], int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << "Enter student " << i << " name ";
        if (!(cin >> pa[i].fullName))
        {
            cout << "Entered error!\n";
            return i;
        }
        cout << "Enter hobby ";
        if (!(cin >> pa[i].hobby))
        {
            cout << "Entered error!\n";
            return i;
        }
        cout << "Enter ooplevel ";
        if (!(cin >> pa[i].oopLevel))
        {
            cout << "Entered error!\n";
            return i;
        }
    }
    return n;
}
void display1(student st)
{
    cout << "My passport: " << endl
         << "Name: " << st.fullName << endl
         << "Hobby: " << st.hobby << endl
         << "oopLevel: " << st.oopLevel << endl;
}
void display2(const student* ps)
{
    cout << "My passport: " << endl
         << "Name: " << ps->fullName << endl
         << "Hobby: " << ps->hobby << endl
         << "oopLevel: " << ps->oopLevel << endl;
}
void display3(const student pa[], int n)
{
    for (int i = 0; i < n; i++, pa++)
        display2(pa);
}

первое: не знаю как проверить наличие пустой строки(у меня такая проверка не реализована) .Видимо, отсутствует понятие о функциях для работы с потоком.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2017, 01:20
Ответы с готовыми решениями:

Считывание пустой строки
юзаю std::cin для считывания в строку std::string, проблема в том что если ничего не вводить, а...

Как убрать считывание пустой строки?
При выполнении данной части кода : for(int i=0;i&lt;n;i++){ System.out.println(&quot;Введите...

Удаление пустой строки либо заполнение пустой строки нулями
Доброго дня суток. Имеется функция удаления строки со значением 0. procedure...

Полосатое закрашивание строк от пустой до пустой строки
Добрый вечер. Подскажите пожалуйста,необходимо в таблице на 50 листах закрасить строки в таком...

1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
05.02.2017, 09:51 2
Лень читать всё условие и программу. Непонятно, что значит проверить наличие пустой строки. Наличие где?
Если имеет в виду строка с нулевой длиной, то можно так: if (s[0] == '\0').
0
05.02.2017, 09:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2017, 09:51
Помогаю со студенческими работами здесь

Считывание Определенной Строки Из Файла По Номеру Строки?
Считывание Определенной Строки Из Файла По Номеру Строки? // В БД Слов содержиться в текстовом...

Считывание строки из файла до символа переноса строки
К примеру у меня есть текстовый файл, который содержит в себе несколько строчек символов. Мне надо...

Поиск пустой строки
Описать процедуру npuce(t1,t2), которая переписует в текстовый файл t1 содержание текстового файла...

Учет пустой строки
Как сделать учет пустой строки? Допустим, дан файл input со строками не менее 10. Первая строка -...


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

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