У меня есть тип данных структуры. Он содержит элемент данных, который также является структурой.Количество экземпляров массива в структуре
struct List{
private:
struct Line listLine[MAX_LINES];
public:
void set(int no);
void display() const;
};
listLine
имеет тип линии, определяется как:
struct Line {
private:
int num;
char itemString[MAX_CHARS + 1];
public:
bool set(int n, const char* str);
void display() const;
};
main.cpp
int main() {
int no;
List list;
cout << "List Processor\n==============" << endl;
cout << "Enter number of items : ";
cin >> no;
list.set(no);
list.display();
}
линия :: дисплей
void Line::display() const {
cout << this->num << ' ' << this->itemString << endl;
}
list.display (звонки линии .display и line.display TS один экземпляр строки, если я называю его 3 раза, он будет выводить 3-х различных типов данных, каждая из которых соответствует индексу listLine
)
void List::display() const {
for (int i = 0; i < 10; i++) {
this->listLine[i].display();
}
}
Давайте предположим, что я заселить listLine
, как так:
listLine[0].num = 1
listLine[0].itemString = ABC
listLine[1].num = 2
listLine[1].itemString = ZXC
listLine[2].num = 3
listLine[2].itemString = QWE
Я знаю, что это не правильный синтаксис C++, я просто пытаюсь проиллюстрировать концепцию, показать, какие данные находятся внутри listLine
.
До сих пор я был в состоянии напечатать содержимое listLine, как так:
for (int i = 0; i < 10; i++) {
this->listLine[i].display();
}
Вывод выше
// reading values in
List Processor
==============
Enter number of items : 3
Enter line number : 1
Enter line string : ABC
Accepted
Enter line number : 2
Enter line string : ZXC
Accepted
Enter line number : 3
Enter line string : QWE
Accepted
// printing those values with the loop i posted
1 ABC
2 ZXC
3 QWE
1
134514883
-1217566436 Jm·Z·Èí¬¿-
134515757
134514257
134515633 0
-1218833660 ôZ·F·
Обратите внимание, как только действительные данные 1 ABC
, 2 ZXC
и 3 QWE
и после этого он просто печатает тарабарщину?
Я хочу отображать только действительные данные, но функция display() List не имеет параметров, поэтому как я должен знать, какие данные в listLine
действительны?
Я только хочу напечатать допустимые строки, в приведенном выше примере, то есть три, а остальные 7 строк являются бессмысленными.
Да, я сожалею об этом, он выглядит довольно загадочным при втором взгляде. – eveo
Почему вы не храните число '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' (Я предполагаю, что 'std :: list' является вне границ для этого назначения). – Johnsyweb
Я не могу редактировать структуры. Элементы данных и функции-члены указаны в задании. – eveo