我试图读取一个文件,直到我在1和5之间点击一个随机int,然后将该int旁边的单词读入数组。在尝试将随机int与fgetc()的返回值进行比较之前,代码运行良好(它将字符读入数组直到行尾)。现在,当我在调试器中时,我看到fgetc()对于我要查找的整数的返回值是ASCII十进制值,而不是实际的整数。因此,当我与random 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';