Bonjour,

Je voudrais effectuer une lecture dans un fichier de type texte contenant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
q7 {
      moteur1=123.654
}
pour ce faire, l'idée est de lire une ligne/*fgets*/ puis après récupérer le nom de la voiture/* q7 */ , le nom du moteur /*moteur*/ , ses caractéristique /*123.653.487.698*/ dans des variables avec/*sscanf*/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#define MAX 100
FILE* fp=fopen("fichier","r")
char buffer[MAX]; nom_voiture1[MAX] ;nom_voiture2[MAX];
fgets(  buffer , sizeof(buffer) , fp) /*lire une ligne*/
sscanf(buffer,%[a-z]%[1-9], nom_voiture1, nom_voiture2)
strcat(nom_voiture1 , nom_voiture2)
Problèmes rencontrés;
1)Quand la première ligne est vide, comment la supprimer car je trouver que la taille du buffer=1 je compare ce qui est à l'intérieur avec '\n' retour à la ligne et '\0' caractère blanc mais le resultat est négatif.

2)Est ce que c'est possible d'éviter la concaténation

3)pour la deuxième ligne, j'ai essayé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
sscanf(buffer," %[a-z][0-9]=%[0-9]+.[0-9]+, &nom_moteur, &num moteur, &cara1, &cara2);
mais il n'assigne pas les valeurs

merci d'avance pour toute reponse