gpt4 book ai didi

C 读取了错误数量的字符串

转载 作者:行者123 更新时间:2023-11-30 14:49:57 26 4
gpt4 key购买 nike

我正在尝试读取 3 个字符串(3 行),其中第一行 - 玩家 1 的卡片,第二 行 - 玩家 2 的卡片,第一行 - 玩家 2 的卡片,第二行 - 玩家 2 的卡片>第三行 - 牌组中的牌。问题是 C 只读取前两行并跳过读取整副牌。 `

 char firstPlayerCards [5];
char secondPlayerCards [5];
char deck [14];
fgets(firstPlayerCards, sizeof(firstPlayerCards),stdin);
fgets(secondPlayerCards, sizeof(secondPlayerCards),stdin);
fgets(deck, sizeof(deck),stdin);
printf("%s",firstPlayerCards);
printf("%s",secondPlayerCards);
printf("%s",deck);`

输入如下:

5h 5d
7h As
2h 8d 4h Jh Ah

最佳答案

您需要更大的数组。

每个玩家的手牌为5个字符,应存储在5个字节中一个字节来保存空终止符。因此每个数组中至少需要 6 个字节来容纳双手。

fgets 当你像这样调用它时,只读取 4 个字节fgets(firstPlayerCards, 5, stdin)为了避免在写入空字符时出现未定义的行为。所以您没有读取您想要读取的输入。

关于C 读取了错误数量的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49278647/

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