Lire lignes d'un fichier en code c

Aline -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
Merci infiniment pour votre aide.
J'ai fais des changements a mon code selon ce que vouz m'avez expliquer. Toutefois, la boucle n'arrete pas lorsque le pointeur est rendu au bout de la 2e ligne. A la sortie du programme, les deux premieres lignes apparraissent, mais une gamme de valeurs apparaissent par apres. Pourquoi la boucle avec le fscanf continue-t-elle apres la fin de la ligne? J'ai pourtant preciser un do while(tbl[ctr-1] != 'n') <-- est-ce bien ce que je dois faire?

Ce que j'essaie de faire, c'est de compter le nombre d'éléments dans la première ligne et le nombre d'éléments dans la deuxième ligne pour ensuite créer une matrice qui a ces dimensions. Je ne veux donc pas lire toutes les lignes du texte en meme temps. (je ne suis pas sure si c'est ce que ton fesait, mais j'ai eu l'impression que oui)

Voici mon nouveau code:
#include <stdio.h>
#include <stdlib.h>


int main()
{
FILE *ptr_fichier;
int tbl[17]={0}, tbl2[21]={0};
int valeur;
int ctr=0;
int nb_rangees=0, nb_colonnes=0;

ptr_fichier=fopen("Refroid.txt", "r");
if (ptr_fichier!=NULL)
{
do
{
fscanf(ptr_fichier, "%d", &tbl[ctr]);
printf("%d\n", tbl[ctr]);
ctr++;
nb_rangees++;
if(tbl[ctr]=='n')
nb_rangees--;
}
while(tbl[ctr-1]!='\n');

ctr=0;
do
{
fscanf(ptr_fichier, "%d", &tbl2[ctr]);
printf("%d\n", tbl2[ctr]);
ctr++;
nb_rangees++;
if(tbl2[ctr]=='n')
nb_colonnes--;
}
while(tbl2[ctr-1]!='n');
}
else{
printf("fichier n'existe pas.");
}

system("PAUSE");
return 0;
}
En référence à cette discussion
A voir également:

1 réponse

mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
je pense que c'est plutot '\n' et pas 'n'
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
pour mype

<hors sujet>
fait un signe à fiddy de regarder ton poste
peut être qu'il a une idée ;-)
</hors sujet>
0