Pb avec fscanf

pom -  
 pom -
Bonjour, j'ai un peu honte de ma question.
Voilà, je veux lire la 1e colonne d'un fichier qui contient 3 colonnes par exemple. Voici ce que j'ai fait :
0 1 2 3
4 5 6 7
8 9 10 11


j'ai donc fait la chose suivante :
int i,d;
FILE * file=fopen("monfichier.dat","r);
for(i=0;i<3;++i)
{
fscanf(file,"%d\n",&d);
printf("d = %d\n",d);
}
fclose(file);


malheureusement j'ai la 1e ligne d'afficher et non la 1e colonne...
(j'ai un peu honte de ma question). Sauriez-vous où se trouve mon erreur ?

Merci.

2 réponses

Timon1102 Messages postés 354 Statut Membre 109
 
re

alors j'ai fait qq tests...
int main() {
 int i=0 ;
 int c[10] ;
 for(;i<10;i++) {
 char buf[100] ; 
    scanf("%d %[^\n]s\n",&c[i],&buf) ;
    }   
 for(i=0;i<10;i++)
    printf("%d\n",c[i]) ;
    
}


ca fonctionne, le probleme est la taille fixe de la chaine buffer. je sais que l'on pourrai l'améliorer, regarde du coté des asprintf ou ascanf qu alloue la taille nécessaire...
Ce code lit un nombre, puis une chaine jusqu'au retour chariot
1
pom
 
OK merci, je regarde ça !!

Pom
0
Timon1102 Messages postés 354 Statut Membre 109
 
tu peux lire les 3 colonnes et ne garder que la premiere

fscanf("%d %d  %d\n",... 


mais il y a surement une meilleure solution...
0
pom
 
salut, oui effectivement, mais je n'ai donné ici qu'un simple exemple. Dans mon vrai pb, j'ai bcp plus de colonnes et je voudrais optimiser mon temps de calcul.

Merci quand même

Pom
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > pom
 
Salut,

Quelque soit le nombre des colonnes tu as toujours besoin que de la 1ère?

Tu es obligé de faire ça en C?
0
pom > lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
 
Salut, oui et non.
Mon prgm est en C, il mouline et me renvoie toute un série de résultats. A la fin de mon prgm, j'ai une dernière partie qui est la visualisation des résultats. Je dois convertir une variable en une autre (pour simplifier le pb, je la multiplie par deux par exemple). Ensuite je charge tous ces résultats en Matlab et je trace les courbes qu'il me faut.
Donc je peux aussi faire cette conversion en Matlab certes, mais j'aimerais faire tous les calculs en C et toute la visualisation en Matlab. Il y a aussi le fait que tout est bon pour apprendre le C.

Pom
0