Problème fonction fscanf
Résolu
CoDForlan
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
CoDForlan Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
CoDForlan Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je n'arrive pas à utiliser correctement la fonction fscanf
fichier en entré :
je voudrais que la fonction me renvoie le prix "amount" qui est ici de 44241.65 mais il me revoit 0.00
Merci pour vos réponse bonne soirée Genoce
je n'arrive pas à utiliser correctement la fonction fscanf
fichier en entré :
{"data":{"base":"BTC","currency":"USD","amount":"44241.65"}}
#include <stdlib.h> #include <stdio.h> //[RAPPEL DE COMPILATION](pour Mingw en C) : gcc main.c -o main.exe float editBTCprice(); int main(int argc, char const *argv[]){ float test = editBTCprice(); printf("%.2f\n", test); return 0; } float editBTCprice(){ float btcPrice = 1.; FILE* inputFile = NULL; inputFile = fopen("datasets/response.json", "r"); if(inputFile != NULL){ fscanf(inputFile,"%*[^:]%*[^:]%*[^:]%*[^:]%*%f%*", &btcPrice); } else{ printf("Canno't open response.json"); } fclose(inputFile); return btcPrice; }
je voudrais que la fonction me renvoie le prix "amount" qui est ici de 44241.65 mais il me revoit 0.00
Merci pour vos réponse bonne soirée Genoce
A voir également:
- Problème fonction fscanf
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
1 réponse
Le premier "%*[^:]" va sauter au moins 1 caractère et s'arrête au 1er ':'
Le second débute sur le ':' donc ne lit que 0 caractère et l'analyse s'arrête. Il faut lire les ':'.
De toute façons les "%*% ... " à la fin n'ont pas de sens.
Si tu veux sauter les 4 ':' puis sauter le '"' pour lire un flottant, ça pourrait-être:
Le second débute sur le ':' donc ne lit que 0 caractère et l'analyse s'arrête. Il faut lire les ':'.
De toute façons les "%*% ... " à la fin n'ont pas de sens.
Si tu veux sauter les 4 ':' puis sauter le '"' pour lire un flottant, ça pourrait-être:
fscanf( inputFile, "%*[^:]:%*[^:]:%*[^:]:%*[^:]:\"%f", &btcPrice);
indique :
les caractères compris dans ce negated scanset ne sont donc pas consommés.