Post by Anthony FleuryPost by fanny ChevalierJe cherche à utiliser sous Visual Net (c++) la fonction snprintf.
J'inclue l'en-tete <iostream> propre à Windows mais ça ne compile
pas, il ne trouve pas la référence à la fonction... En incluant
<stdio> non plus...
<iostream> n'est pas propre à windows... c'est un en-tête standard
défini dans la norme du C++. Quant à la fonction snprintf() c'est une
fonction héritée de la bibliothèque standard du C, si tu fais du c++
tu pourrais donc utiliser les IOStreams plutot.
C'est plus complexe que ça. C'est une fonction qui n'est devenue partie
de C qu'après la norme C++ a été adoptée. Elle n'est donc pas héritée de
C ; elle n'existe pas en C++.
Dans la pratique, tout dépend du compilateur :
- Il y en a qui s'en fout de C99. La fonction n'y est pas, tout
simplement.
- La fonction y est, comme une extension. C'est une extension
illégale, puisque le programme suivant est du C++ légal :
#include <stdio.h>
int snprintf = 42 ;
Mais c'est une extension bien utile quand même.
- La fonction y est, mais protétée par les gardes de compilation
conditionnelle, de façon que tu ne la vois pas en C++ (au moins
éventuellement de donner des options supplémentaires sur la ligne de
commande pour activer les extensions). C'est à mon avis la meilleur
solution.
--
James Kanze GABI Software mailto:***@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16