Si tu a beaucoup besoin de faire des allers retours entre les fichiers et tes structures/classes dans ton programme, renseigne toi sur la sérialisation et en particulier Boost.Serialize, cf un sujet récent de ce forum C++ (comment sauvegarder en POO, quelque chose de ce genre).
Pour quoi programmer en c++ si c'est pour utiliser des structures, ne penses-tu pas qu'une classe serait l'idéal? au moins tu pourras mettre des methodes dedans.
Pour quoi programmer en c++ si c'est pour utiliser des structures, ne penses-tu pas qu'une classe serait l'idéal? au moins tu pourras mettre des methodes dedans.
en C++ la seule différence entre class et struct c'est que class est par defaut private et struct par defaut public. On peut mettre des méthode dans class et struct.
Pour être plus juste, en C++ il y a deux différences entre classes et structures :
- Quand on hérite une classe d'une autre, si l'on ne précise pas le type de l'héritage(public/protected/private), il est privé. Avec les structures, c'est public.
- Quand on place un attribut ou une fonction dans une classe, si l'on a pas avant précisé la visibilité(public/protected/private), l'élément que l'on a placé a une visibilité privée. Avec les structures, c'est public.
Lâche les tableaux de char, et utilise des std::string à la place. Et puis, pour lire un fichier, rien de mieux qu'un std::ifstream...
std::ifstream ifs("fichier.txt");
std::string ligne;
std::getline(ifs, ligne);
// ligne contient maintenant la ligne complète, CR/LF exclus
Et ainsi de suite.
Il est important de mentionner que je suis novice en C++
Oui.... je comprend, mais comment maintenant faire pour que je puisse mettre ligne dans la structure produit afin que je puisse voir le contenu de champ1 ou champ3 par exemple.
produit p; // admettons que produit contient des std::string au lieu de des char[]
p.champ1 = ligne.substr(0, 10); // on part à l'indice 0 et on prend 10 caractères
p.champ2 = ligne.substr(10, 25);
Et ainsi de suite. Il y a probablement une façon plus efficace de procéder, mais j'y suis allé simplement.
Vois-tu, le C++ a une excellente bibliothèque de classes (nommée la STL). Il serait absurde de s'en passer.
Ah, oui, l'idéal serait de créer un constructeur pour produit. Et de faire de produit une classe à part entière (pour des raisons d'encapsulation).
Manière efficace de lire un fichier dans une structure
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
* Un wrapper C++ pour sqlite * Une alternative a boost units
Objectif Zéro Bug - le test logiciel professionnel | L'électronique de zéro | Tableaux & pointeurs | Pointeurs sur fonctions | Lecture/écriture binaire
Objectif Zéro Bug - le test logiciel professionnel | L'électronique de zéro | Tableaux & pointeurs | Pointeurs sur fonctions | Lecture/écriture binaire
Objectif Zéro Bug - le test logiciel professionnel | L'électronique de zéro | Tableaux & pointeurs | Pointeurs sur fonctions | Lecture/écriture binaire
* Un wrapper C++ pour sqlite * Une alternative a boost units