gpt4 book ai didi

c++ - 如何对结构成员使用指针

转载 作者:行者123 更新时间:2023-11-27 23:18:35 25 4
gpt4 key购买 nike

上周在我的计算机科学课上,我们编写了一个程序,其中包含一个从文件中导入“卡片”的函数,如下所示:

  struct card
{
char rank[10];
char suit[10];
char color;
bool dealt;
char location[12];
};

.

  void importCard(card deck[])
{
ifstream fin;
fin.open("deck.txt");
int index;

for(index=0;index<52;index++)
{

fin >> deck[index].rank;
fin >> deck[index].suit;

if(deck[index].suit[0]==('d')||deck[index].suit[0]==('h'))
{
deck[index].color='r';
}
else
{
deck[index].color='b';
}

deck[index].dealt=false;
}
}

基本上,我在此函数中大量使用点运算符。

现在,我的任务是修改它以使用指针代替所有方括号。但是,如果我使用类似的东西,它就不起作用

fin >> *deckPointer.suit;

因为指针不适用于点运算符。那么,我该如何编写它来遍历所有卡片呢?我知道如何编写它来遍历一张卡片,但我不知道如何让它遍历所有卡片。此外,我不能使用任何其他更高级的工具,如 vector ,所以不建议这样做。此外,我只允许使用++ 和 -- 增加我的指针,不能增加任何其他数量。

最佳答案

指针与点运算符一起工作,错误的是它们的优先级。你可以加上一些括号来修复它:

 fin >> (*deckPointer).suit;

c++ 语法中有一个方便的简写:-> 运算符,结合了指针取消引用和字段访问:

find >> deckPointer->suit;

关于c++ - 如何对结构成员使用指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com