Il semble que vous allez lire des lignes en éléments d'un tableau à deux dimensions.
de la norme C (7.21.7.2 le fonction fgets)
3 The fgets function returns s if successful. If end-of-file is encountered and no characters have been read into the array, the contents of the array remain unchanged and a null pointer is returned. If a read error occurs during the operation, the array contents are indeterminate and a null pointer is returned.
Ainsi, une boucle correcte peut ressembler à
size_t i = 0;
while(i < SIZE && fgets(names[i], LENGTH, stdin) != NULL)
{
//...
++i;
}
Ou si vous allez arrêter de lire les lignes quand une ligne vide a été encounterd alors vous pouvez écrire
size_t i = 0;
while(i < SIZE && fgets(names[i], LENGTH, stdin) != NULL && names[i][0] != '\n')
{
//...
++i;
}
Les messages d'erreur que votre compilateur a émis signifie le suivant
Passing argument 1 of 'fgets' from incompatible pointer type.
Dans cette fonction appel
fgets(names, LENGTH, stdin)
l'expression names
utilisé comme premier argument est de type char (*)[LENGTH]
mais la fonction prend un argument du type char *
.
"Comparison between pointer and zero character constant. Did you mean to dereference the pointer?
Ce message signifie que le compilateur ne peut pas conclure que le par le pointeur de fonction est comparée avec un pointeur NULL ou vous allait comparer le caractère pointé par le pointeur retourné avec le caractère '\0'
.
Vous avez besoin d'un bon livre C –