lire sur l'entrée standard, c'est lire stdin, et non pas utiliser des arguments.
Ton programme devrait être lancé ainsi :
echo "1 3 54 84 12.01" | ./arbre
la lecture de stdin se fait à l'aide de fgets.
Attention car tu dois dire à fgets combien de caractère il va récupérer.
Il serait plus simple de formater ton fichier d'entrée pour qu'il ait des retours à la ligne : dans l'absolu, si tu as vraiment beaucoup de données (genre 1 000 000) si tu gardes toutes tes données en ligne, le paramètre de ton fgets qui lui indique le nombre de caractère devra suivre. Vu que tes données peuvent être nombreuses, il est mauvais de les garder en ligne, car ce paramètre peut tendre vers l'infini... Enfin essaie tu comprendras le problème, je pense.
Si tu suis ce conseil, ton programme devrait être appeler ainsi :
cat mon_fichier_de_donnees | ./arbre
et mon_fichier_de_donnees aura cette forme :
Pour isoler tes éléments ensuite tu peux utiliser strtok, si tu ne rajoutes pas de retours à la ligne dans ton fichier en entrée.
strtod te servira à convertir tes chaînes de caractères en float.
Partager