Nous sommes actuellement le 10 Juil 2026, 23:48

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 10 message(s) ] 
Auteur Message
 Sujet du message: Question C++
MessagePublié: 15 Août 2003, 17:22 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
J'aimerais savoir s'il y a un compilateur C++ capable de compiler ce programme :

Code :
#include <fstream>
using namespace std;

int main()
{
   ofstream fichier("test.txt");
   string str("Hello world!");

   fichier << str;

   return 0;
}


J'utilise Visual Studio.NET et il ne compile pas ce programme. J'ai vu plusieurs exemples en C++ ou ofstream et ifstream étaient capable de lire et d'écrire une string, mais aucun des compilateurs que j'ai essayé n'ai capable de les compiler, alors je me demande, si ce ne sont pas les exemples que j'ai vus qui étaient plutôt avant-gardistes ?


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 15 Août 2003, 19:34 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 30 Juil 2002, 20:04
Message(s) : 5314
Localisation : Longueuil (l'original)
Tu as oublié d'inclure string.

Essaie ça:

Code :
#include <fstream>
#include <string>
using namespace std;

int main()
{
   ofstream fichier("test.txt");
   string str("Hello world!");

   fichier << str;

   return 0;
}

_________________
intel E7300 @ 3.8Ghz (9.5x400)
Asus P5Q Pro // Diamond Radeon 4870 1 gig // 4 PC2-8500 OCZ XTC Platinum // OCZ Vendetta 2 + Xigmatek ACK-I7751 // Western Digital Caviar Black 640GB // Corsair TX750W // Antec 900


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 21 Août 2003, 13:15 
Hors-ligne
Nouvel adepte
Nouvel adepte

Inscription : 07 Oct 2002, 16:37
Message(s) : 51
comment ca peu être différent pour les includes selon le compilateur? Le compilatreur invente pas le code :roll:


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 21 Août 2003, 13:35 
Hors-ligne
Répond à tout!
Répond à tout!

Inscription : 10 Jan 2002, 14:09
Message(s) : 2386
Localisation : Verdun
Je peux compiler le code original sans aucun problème avec gcc 3.2


Gilles Lussier a écrit:
Parce qu'il semble qu'avec visual studio,.net, il faille inclure fstream, tandis qu'avec mon compilateur Intel C++, je dois inclure iostream.h pour utiliser la fonction ofstream


parce que fstream n'existait pas dans la vieille implantation du c++.

Apres quelque temps les développeur on voulu séparer et optimiser définitivement les librairies, ce qui a donner la disparition de tout les .h et certaines nouvelles librairie (fstream).

Conclusion, votre compilateur intel n'est juste pas a jour(ou intel l'on jamais rendu la).


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 21 Août 2003, 14:49 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Finalement le code fonctionne avec Visual Studio.NET, mais pas avec Visual Studio 6. Malheureusement par contre, la sérialisation d'une string n'est pas super.

Si j'écris dans un fichier tout est beau :
Code :
...
ofstream fichier("test.txt");
string str("Hello world !");
fichier << str;
...


Je retrouve dans mon fichier "Hello world !". Par contre quand je veux relire la string :
Code :
...
ifstream fichier("test.txt");
string str;
fichier >> str;
...


str ne contient que "Hello". La lecture s'arrête sur les EOF, les \0 et les espaces. Peut-être qu'il y a moyen de l'empêcher de s'arrêter sur les espaces ???


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 21 Août 2003, 16:12 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 14 Mars 2002, 22:24
Message(s) : 3308
Localisation : Québec
cro a écrit:
Finalement le code fonctionne avec Visual Studio.NET, mais pas avec Visual Studio 6. Malheureusement par contre, la sérialisation d'une string n'est pas super.

Si j'écris dans un fichier tout est beau :
Code :
...
ofstream fichier("test.txt");
string str("Hello world !");
fichier << str;
...


Je retrouve dans mon fichier "Hello world !". Par contre quand je veux relire la string :
Code :
...
ifstream fichier("test.txt");
string str;
fichier >> str;
...


str ne contient que "Hello". La lecture s'arrête sur les EOF, les \0 et les espaces. Peut-être qu'il y a moyen de l'empêcher de s'arrêter sur les espaces ???


il faut que tu utilises fichier.getline().. mais ca ne fonctionne qu'avec un char*..

par contre, il me semble qu'il a moyen de changer le caractère de fin de lecture.. tu pourrais remplacer l'espace par '\n'

_________________
Linux 2.6.22 debian gcc 4.2
KDE 3.5.7 / xorg-x11 7.3


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 21 Août 2003, 16:34 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Effectivement la fonction getline fonctionne.

Code :
...
ifstream fichier("d:\\test.txt");
char buffer[255] = {""};

fichier.getline(buffer, 255, '\n');
...


Mais le fait de devoir spécifier une taille c'est vraiment poche. L'opérateur >> avec les string aurait du continuer jusqu'a la fin du fichier ou \n. Il doit surement y avoir un moyen pour lui spécifier de ne pas s'arrêter sur un espace. La sérialisation des string C++ devrait être semblable à celle de CString en MFC/ATL à mon avis.


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 10 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site