我有一个结构数据类型。它包含一个也是结构的数据成员。
struct List{
private:
struct Line listLine[MAX_LINES];
public:
void set(int no);
void display() const;
};
listLine
是 Line 类型,定义为:
struct Line {
private:
int num;
char itemString[MAX_CHARS + 1];
public:
bool set(int n, const char* str);
void display() const;
};
主文件
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(调用line.display,line.display打印一行的一个实例,如果我调用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
它只是打印乱码?
我只想显示有效数据,但 List 的 display() 函数没有参数,那么我应该如何知道哪些数据listLine
是有效的?
我只想打印有效行,在上面的示例中,即三行,其他 7 行是废话。