Je récupère des choses mais ce n'est pas ce qu'il faudrait:
Merci de penser à la balise CODE koala01
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 std::ofstream file1( "C://test.txt"); //int i=12; //file1<<i; CString toto; toto="test"; file1<<toto; file1.close(); std::ifstream fichier( "C://test.txt" ); if ( fichier ) // ce test échoue si le fichier n'est pas ouvert { std::string ligne; // variable contenant chaque ligne lue // cette boucle s'arrête dès qu'une erreur de lecture survient while ( std::getline( fichier, ligne ) ) { // afficher la ligne à l'écran std::cout << ligne << std::endl; } }
quand je mets ce code j'ai un nombre à la place d'un String
Pourquoi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 std::ofstream file1( "C://test.txt"); CString i; i="test"; file1<<i;
merci de penser à la balise CODE koala01
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <iostream> #include <fstream> #include <string> int main() { std::ofstream file1( "test.txt"); std::string i = "test"; file1 << i; }
![]()
Ce n'est pas possible, tu ne regardes pas le bon fichier ! Cf mes post du dessus, il s'agit du fichier testBonFichier.txt situé dans le même répertoire que ton éxécutable (ou ton dossier de travail sous Visual Studio).
Essaye avec ce code là...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <iostream> #include <fstream> #include <string> int main() { std::ofstream file1( "testBonFichier.txt"); // autre nom std::string i = "test"; file1 << i; }
C'est bon, ça marche. Merci!
Maintenant je cherche à mettre 5 variables séparées par ; ou , pour que ce soit compatible avec excel.
Il y a des int et des variables qui sont des chaines de caractères (en gros des string).
Merci de m'aider.
Le code :
devrait marcher...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <iostream> #include <fstream> #include <string> int main() { std::ofstream file1( "testBonFichier.txt"); // autre nom int var1 = 3; int var2 = 4; int var3 = 5; int var4 = 6; file1 << var1 << ";" << var2 << ";" << var3 << ";" << var4; }
Juste un petit conseil. Si tu comme tu l'as dit au dessus, tu souhaites retravailler, alors le mieux serait d'acheter un bon livre sur le C++. C'est là que tu progresseras le mieux...
Bonne continuation.![]()
std::istream est une classe, donc possède un destructeur...
Le fichier est donc automatiquement fermé lorsqu'on sort de la portée du ifstream, c'est-à-dire dans le cas présent à la fin du programme.
Je dis une connerie ?![]()
Si, c'est obligatoire, mais fait automatiquement dans le destructeur du stream...
Edit pour Poukill: Je n'avais pas vu que tu m'avais grillé...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Mais, d'un autre coté, avec le code fournis, on peut se demader si l'ouverture en écriture et l'ouverture en lecture sont ou non dans la même portée...
Si, de fait, il essaye d'ouvrir le fichier en écriture, d'y mettre quelque chose et, tout de suite après d'ouvrir le fichier en lecture (dans la même portée et sans avoir fermé le fichier), les problèmes apparaîtront sans doute lors de la tentative d'ouverture en lecture![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
perso je prefere fermer mon fichier. c'est plus claire a relire
En général, on ne lit et n'écrit pas dans une même fonction... Le close est donc inutile. (j'ai bien dit en général)
(Dans le cas multithread, on met un mutex, donc c'est encore différent)
@ toutounesan=>
La première chose à faire, c'est de vérifier où doivent être placés les fichiers que tu veux utiliser.
*Logiquement* si tu crées un fichier au départ de l'application (sans fournir d'autres info que le nom du fichier), tu devrais pouvoir le retrouver dans l'arborescence de ton projet.
Sinon, il faut veiller à fournir le chemin absolu, ou relatif à l'application qui permettra de retrouver ce fichier.
Si tu veux prendre toutes les précautions, tu peux vérifier l'ouverture d'un fichier, aussi bien en écriture qu'en lecture, car, sous linux, par exemple, la gestion des droits permet d'empêcher la création de nouveaux fichiers dans certains dossiers.
Ensuite, je rejoins pleinement l'avis de poukill lorsqu'il te conseille de reprendre "les bases" depuis le début si ton but est de travailler dans le secteur.
Fais peut être un tour du coté des cours et tutoriels du site, voire, base toi sur les critiques fournies par les membres concernant certains livres afin de choisir celui qui sera le mieux adapté à ton niveau
Travaille à ton aise, sans précipitation, et sans vouloir mettre la charrue avant les boeufs.
Apprend à marcher avant de vouloir courir, et, si tu éprouve un problème particulier face à une situation particulière, n'hésite pas à venir nous demander un complément d'explication ou de l'aide![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Merci des conseils.
Il est vrai que je me précipite.
Partager