Problème de fin de boucle do while infinie

Fermé
athos24 Messages postés 2 Date d'inscription lundi 7 octobre 2013 Statut Membre Dernière intervention 7 octobre 2013 - 7 oct. 2013 à 16:20
athos24 Messages postés 2 Date d'inscription lundi 7 octobre 2013 Statut Membre Dernière intervention 7 octobre 2013 - 7 oct. 2013 à 17:31
Bonjour,
le but est de récupérer la taille k de la premiere ligne non nulle et qui n'est pas un commentaire pour l'affecter par la suite à une matrice. Ca marche très bien sauf dans le cas ou le fichier lu n'est composé que d'un commentaire je me retrouve alors dans une boucle infinie alors que la condition current_char !=EOF de mon while devrait me permettre d'en sortir voici le bout de mon code concerné

signed char current_char;
int k=0;

/* Size of the first line */
do{
while (( current_char = fgetc (file)) != '\n')
{
switch (current_char)
{
case ' ':
break;
case '\t':
break;
case '#': /* Comment */
while (fgetc (file) != '\n') /* End of comment line */
continue;
break;
default:
k=k+1;
}
}
}while((k == 0) && (current_char != EOF)); /* to find the fist line not empty */

Merci d'avance
A voir également:

1 réponse

athos24 Messages postés 2 Date d'inscription lundi 7 octobre 2013 Statut Membre Dernière intervention 7 octobre 2013
7 oct. 2013 à 17:31
probleme resolu voila le code si ca peut aider quelqu'un:

int current_char;
char **grid=NULL;
int k=0;

/* Size of the first line */
do{
while (( current_char = fgetc (file)) != '\n' && current_char != EOF)
{
switch (current_char)
{
case ' ':
break;
case '\t':
break;
case '#': /* Comment */
while (fgetc (file) != '\n') /* End of comment line */
continue;
break;
default:
k=k+1;
}
}

}while( (current_char != EOF) && (k == 0) );
0