Voilà ,j’ai un petit problème en programmation c++. Je cherche à lire un fichier .txt qui contient pour chaque ligne, un nom de livre ainsi que le nom de l’auteur, les deux éléments étant séparés par un “$”. Je cherche pour le moment simplement à lire le nom du livre de la première ligne.
Voici ce que j’ai trouve jusqu’à présent:
#include #include #include #include
using namespace std;
int main (int argc, char*const argv[]){
string a;
int b;
string titre;
int nb_livres;
ifstream fin (“livres.txt”);
fin>>nb_livres;
for (b=0;b<nb_livres; b++){
string titre="";
while(a!="$"){
fin>>a;
titre=titre+a+" ";
}
cout<<titre<<endl;
}
cout<<endl;
system(“pause”);
return 0;
}
Seulement, cela ne fonctionne pas, j’aimerais donc savoir pourquoi et avoir vos conseils pour continuer à lire la suite du fichier.
Merci d’avance et à bientôt,
Michael
Déjà j’ai l’impression que tu vas boucler x foix, x étant le numéro du premier livre. On peut raisonnablement penser que ce nombre sera 1, mais ce serait plus propre de mettre ton for en commentaire pour le moment.
Secundo, au lieu d’utiliser l’opérateur >> caractère par caractère moi j’essayerais ça:
fin.getline(titre.c_str(), 256, ‘$’)
ou ça:
char buffer[256];
fin.getline(buffer, 255, ‘$’);
Oui, fin la c’est pas un probleme de langage, mais d’algorithme …
Faut commencer par la base, et comprendre comment fonctionne un algorithme. Parce qu’il y a quand meme des boucles qui servent pas a grand chose dans ce code …
Commence par ecrire ton algo en pseudo-code, puis transcrit le en C++.
La j’ai l’impression que tu ne maitrises ni l’un ni l’autre. Quand on debut, ca aide de commencer comme ca.
Fait un truc comme ca :
[code]Procedure ParseLivre
Debut
fichier = ouvrir(fichier tutu)
ligne = fichier.premiere_ligne
Tant que ligne != fin du fichier
Ligne = fichier.ligne_en_cours
Nom_livre = ligne.partie_avant_$
Nom_auteur = ligne.partie_apres_$
affichier nom_livre, nom_auteur
ligne = fichier.ligne_suivante
fin tant que
Fin[/code]
voila, et ensuite tu pourras reflechir a comment le faire dans un langage. Mais franchement, l’algorithmie, ca me semble vraiment plus important pour commencer.
Je suis entièrement d’accord avec Cben. Visiblement tu ne maîtrises pas correctement l’algorithme que tu veux transcrire. Avant de “faire du code”, il faut savoir ce que tu veux qu’il fasse et comment. Un bon programme ça commence papier crayon!
Donc ? un unique message pour une demande d’aide, sans un bonjours, pas une reponse de ca part depuis hier, si ca devient pas tres tres vite constructif d’ici demain, je fermes!
Sinon, pour la question: c’est pas pour resoudre ce genre de problemes qu’on prends des stagiaires?
5ug4r 3d1t:
Et puis en plus y a pas les tabs bien propres dans son code, et ca, c’est un coup a devenir responsable cafe et photocopies en 2 coups de cuillere a pot…