通过结构指针扫描信息结构?

时间:2017-02-12 21:12:15

标签: c

在C中,说我有:

    typedef struct player {
        char Fname[25];
        int Singles;
        int Doubles;
        int Triples;
        int Homeruns;
   } Player;

并在main()中定义了

    Player* players;

指向播放器类型的指针。现在说我有一个函数从文件中读取每个Player类型的数据:

    void read_from_file(char* filename, Player* players, int size) {
        FILE* fp;
        fp = fopen(filename, "r");
        while (players < size) {
            fscanf(fp, "%s%d%d%d%d", *players.Fname, *players.Singles, *players.Doubles, *players.Triples, *players.Homeruns);
            players++;
        }
     }

它表示“Fname”,“单身”,“双打”等是在结构或联盟中要求的。但玩家被解除引用,所以它应该给一个结构权利吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

主要问题是运算符优先级,因为*players.Fname实际上意味着*(players.Fname)(不适用players类型为Player*),而不是(*players).Fname },(这会起作用)。

无论如何,您可以使用运算符->通过指针变量访问成员。所以你可以写......

scanf("%d", &player->Singles);

而不是更笨拙的符号...

scanf("%d", &(*player).Singles);