|
|
|
|
Bonjour !
Et une question de petite débutante en c++, une !
Voilà, je voudrais gérer des fichiers en c++ mais je ne trouve pas d'info à ce sujet. Déjà, je n'arrive pas à lire mon fichier dans une forme structurée comme je faisais en C grâce aux structures. Je travaille avec des classes, peuvent-elles tenir lieu de structures ? Est-ce que je peux utiliser fread et fwrite comme en C (est-ce que ça se fait ?) ? Ou que dois-je utiliser à la place ?
D'avance, merci beaucoup de votre aide.
Répondre à dje-dje
|
Bon voila :
|
Pour du C++ plus besoin de fopen ou de FILE * tu peux te contenter d'utiliser des flux. Grosso modo tu as deux familles de flux :
#include <istream> // inclue juste la classe std::istream #include <ostream> // inclue juste la classe std::ostream #include <fstream> // inclue les std::ofstream et std::ifstream #include <iostream> // inclue istream, ostream, et configure std::cout et std::cerr Pour manipuler un flux : 1) il faut commencer par l'ouvrir (avec le constructeur) si tu veux manipuler un flux autre que std::cin, std::cerr, std::cout 2) ensuite il faut tester si le flux est correctement ouvert (il suffit de passer le flux dans un if) 3) s'il est ouvert tu peux le manipuler (opérateur << pour écrire dans un flux, opérateur >> pour lire dans un flux) 4) une fois terminé, et si ce flux s'est ouvert avec succès, tu es sensé fermer le flux (méthode close() ). Un exemple concret : #include <fstream>
#include <iostream>
int main(){
const char *filename = "plop.txt";
std::ofstream ofs(filename);
if(ofs){
std::cout << "Ecriture de " << filename << std::endl;
ofs << "plop !" << std::endl;
ofs.close();
}else{
std::cerr << "Impossible d'ouvrir " << filename
<< " en écriture !" << std::endl;
}
return 0;
}
Bonne chance |