Bonjour,
Je voudrais effectuer une lecture dans un fichier de type texte contenant
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*/
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é
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
Partager