PDA

Voir la version complète : to be or not to be deprecated


relativist
01/08/2005, 11h59
Ouaip bijour tt le monde. Voila g un probleme de c++ . J'ai ecris un programme (rien a voir avec des jeux mais je crois que j'ai trouvé le nid a spécialistes ;.) avec une vieille version de devc++ et tout allais bien. Mais maintenant je dois compiler ce même programme sur un autre ordi (en unix en fait et il me sort un message comme quoi la classe iostream.h est deprecated. J'ai cru comprendre que il fallait la remplacer par iostream sans .h mais alors il ne reconnait plus les cout et cin.J'ai moyen envie de les pister tous pour les remplacer par autre chose. Que puis je faire.

Bon je deviens fou... Pour ce programme avec le header suivant
#include <stdio.h>
#include <math.h>
#include <iostream.h>
#include <fstream.h> il marche (pas de warning, que dalle)

et pour un autre qui utilise le même header il rale (vive la precision informatique.) Est ce que ca amrche malgré le warning, et s'il faut que je m'adapte a la nouvelle version que dois-je faire? Merci de votre attention, moi je vais continuer dix minutes a me taper la tete aux murs... :00000032:

elendil
01/08/2005, 12h16
Faut que tu mettes ça :

#include <iostream>

using namespace std;

int main() {
cout << "hello world" << endl;
return 0;
}

ou :

#include <iostream>

int main() {
std::cout << "hello world" << std::endl;
return 0;
}

Même chose pour tout les en-têtes de la STL. Avec les .h c'est pour la compatibilité avec les programmes écrit en C++ avant la norme C++98, je crois.

relativist
01/08/2005, 12h35
donc en gros si je mets é fois les >> ca marche... je dois faire pareil pour les cin? Merci en tout cas a toi. :00000002:

J'ai un autre probleme que j'aimerais soumettre : comment ecrire un fichier binaire avec des doubles. Le but de la manoeuvre est que ce même fichier puisse être lu avec java avec la fonction readDouble(). J'imagine que ca doit etre simple, mais bon j'apprends...

et que vive le Gondor

NewbiZ
01/08/2005, 15h13
donc en gros si je mets 2 fois les >> ca marche... je dois faire pareil pour les cin? Merci en tout cas a toi. :00000002:
Non, la solution que propose elendil n'a rien à voir avec le nombre de << :)

Pour que ton programme tourne il faut d'une part que tu enlèves le .h dans ton include, et d'autre part que tu renseignes le compilateur sur l'espace de nom à utiliser lors de l'appel de cout, cin etc...
Tu peux faire ca, soit en spécifiant a chaque appel de cout, son espace de nom sous la forme namespace:: par exemple :
std::cout << ...
std::cin >> ...
Ou alors si tu préfères, tu peux spécifier une seule fois au début de ton programme l'espace de nom que tu va utiliser par défaut :
using namespace std;

Pour ton fichier, je ne connais pas la fonction readDouble() de java, mais en C++, regarde du côté de fwrite()

relativist
01/08/2005, 15h27
a oui ok la j'ai capté... d'ailleurs le double << il a corrigé depuis tantot :00000005:

NewbiZ
01/08/2005, 15h29
Hésites pas à poster ton code sur l'écriture dans un fichier, si tu as un problème.