gpt4 book ai didi

将 fgetc() 的返回值与随机数字进行比较

转载 作者:行者123 更新时间:2023-11-30 19:29:47 25 4
gpt4 key购买 nike

我正在尝试读取一个文件,直到遇到 1 到 5 之间的随机 int,然后将该 int 旁边的单词读入数组。在尝试将随机 int 与 fgetc() 的返回值进行比较之前,代码运行良好(它将字符读入数组直到行尾)。现在,当我在调试器中时,我看到我正在查找的整数的 fgetc() 返回值是 ASCII 十进制值,而不是实际的整数。所以当我与随机 int 进行比较时,它永远不会被发现。我不明白如何解决这个问题。这是代码,很抱歉评论是法语,它们不相关。

int lectureMot(FILE *listePtr, char motsecret[])
{
int caracLu;
int nbLettres = 0;
int numRand;
numRand = rand()%((6-1)+1);

/*Ouverture du fichier texte de la liste*/
listePtr = fopen("Liste.txt","r");

/*Verification de l'ouverture du fichier*/
if (listePtr == NULL)
{
printf("Erreur a l'ouverture de la liste");
return(EXIT_FAILURE);
}
else
{
/*Lire jusqu'au nombre random*/
while((caracLu = fgetc(listePtr)) != numRand);

/*Lire le mot et le mettre dans le tableau*/
while((caracLu = fgetc(listePtr)) != '\n')
{
motsecret[nbLettres] = (char)caracLu;
nbLettres = ++nbLettres;
}
}
/*Fermeture du fichier liste*/
fclose(listePtr);
return nbLettres;
}

最佳答案

只需在您的数字中添加“0”字符即可:

改变

numRand = rand()%((6-1)+1);

numRand = (rand()%((6-1)+1)) + '0';

关于将 fgetc() 的返回值与随机数字进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52350110/

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