Bonjour,
Sur ma machine j'ai en double boot Vista et Linux. Sous Windows Vista j'utilise CodeBlocks (déjà là) et je n'ai pas suivi votre introduction par flemme Par contre sous Linux j'ai suivi vos indications.
Au chapitre 'Manipulations basiques des e/s', dans la partie 'Les Formats', nous avons (en raccourci) le code suivant :
1 2 3 4 5 6 7 | #include <stdio.h> int main(void) { long double g = 70.0; printf("%Lg\n", g); return 0; } |
Sous Linux la sortie est celle attendue, mais sous Vista elle n'est pas bonne du tout.
Est-ce le fait de travailler sous CodeBlock ou plus généralement sous Windows qui explique cela ? En faisant des recherches j'ai trouvé comme explication (un peu brève) que MinGW, par défaut, utilise les fonctions e/s de l'environnement Microsoft C, qui ne supporte pas les nombres flottants de 80bit (long double == double chez Microsoft).
Cordialement