help!! fscanf/fgets

help!! fscanf/fgets - C - Programmation

Marsh Posté le 30-06-2008 à 08:34:34    

Alors voilà, j'ai dans un fichier texte une série des lignes comprenant chacune une série de trois nombres
J'ai besoin d'enregistrer les valeurs (pour les comparer par la suite),  
 
fscanf(fichier, "%ld, %ld, %ld,", &NoElmts[0], &NoElmts[1], &NoElmts[2]);
fscanf(fichier, "%ld, %ld, %ld,", &NoElmts[3], &NoElmts[4], &NoElmts[5]);
 
mais je voudrais aussi enregistrer la ligne sous forme de "string" avec une commande genre:
 
fgets(ligne1, TAILLE_MAX, fichier);
 
Le probleme c'est que quand je fais une de ces commandes, ca passe automatiquement à la ligne suivante!!!
Est ce qu'il existe un moyen de comtourner ce probleme?
Deuxieme petite question, existe-t-il un moyen simple de dire "si i est un mutiple de 3..."???
 
Merci d'avance pour vos reponses
 
 

Reply

Marsh Posté le 30-06-2008 à 08:34:34   

Reply

Marsh Posté le 30-06-2008 à 09:04:27    

tu récupères la ligne avec ton fgets, puis tu fais un sscanf sur la ligne récupérée plutot que sur ton flux.
 

Code :
  1. fgets(ligne1, TAILLE_MAX, fichier);
  2. sscanf(ligne1, "%ld, %ld, %ld,", &NoElmts[0], &NoElmts[1], &NoElmts[2]);

Reply

Marsh Posté le 30-06-2008 à 09:09:51    

OK!!!  
J'avais esayé un truc dans le genre mais tj avec  "fscanf" donc forcéments, ca plantait!!
Merci beaucoup

Reply

Marsh Posté le 30-06-2008 à 09:10:53    

Pour le deuxième question, il suffit de regarder si le reste de la division vaut 0.

Code :
  1. if ((i%3) == 0)

Reply

Marsh Posté le 30-06-2008 à 09:22:42    

a ben oui.... pkoi je veu tj chercher compliqué, moi!!!
Merci. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed