IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[Débutant] Afficher 3 variables à partir d'un fichier ?


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut [Débutant] Afficher 3 variables à partir d'un fichier ?
    Bonjour tout le monde,



    Je suis quelqu'un qui cherche à comprendre la logique du langage c++. Je ne l'ai toujours pas saisi alors que cela fait très longtemps que je galère à comprendre.


    Je me suis référé à plusieurs occasions aux documentations disponiblent sur ce site, je me rends compte évidemment que c'est le résultat d'un travail énormissime de la part de ceux qui les ont rédigées, (FAQ, tuto, dico).

    Mais malgré tout ce luxe à portée de souris, j'y comprends rien à ces docs, je dois avoir un cerveau monté à l'envers vu que visiblement tous les autres débutants les comprennent instantanément.



    Alors j'essaie une autre approche, en utilisant l'interactivité du forum.

    En attendant quelqu'un libre pour répondre à mon "problème", en sachant que mon niveau de c++ s'arrête à l'affichage d'un mot en invite de commande msdos.



    - Je cherche à lire trois floats qui se suivent, se trouvant dans un fichier pour les afficher dans des champs chacuns séparés.

    Je connais la positions de ses floats.


    Est-ce un code facile à réaliser, quelle bibliothèque faut-t-il utiliser, etc ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Non, ce n'est pas un code difficile à écrire, il faut juste te lancer !
    Tu trouveras dans la fac des exemples de manipulation de fichiers. Essaie de coder quelque chose et si ca ne marche pas, on t'aidera à debugger.

    Bon courage !

  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par violette327
    Tu trouveras dans la fac des exemples de manipulation de fichiers. Essaie de coder quelque chose et si ca ne marche pas, on t'aidera à debugger.
    Nikolas n'est peut-être pas étudiant. Il n'a peut être pas accés à la fac...

    Plus sérieusement, la première chose à faire dans cette situation consiste à trouver un tutoriel basique utilisable sur l'IDE que tu utilises. Un IDE est un programme qui permet de programmer (visual c++, dev-c++, windev, etc...)

    Hope it helps.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par r0d
    Nikolas n'est peut-être pas étudiant. Il n'a peut être pas accés à la fac...
    Tu crois pas si bien dire, j'ai arrêté très tôt les études (pas le choix), je n'ai pas connu de cours d'initiation à la programmation, non plus.


    Comme EDI, j'utilise Dev-C++, il a l'air pas mal, même s'il ne dispose malheureusement pas d'outil pour créer une interface graphique.

    J'ai essayé plusieurs tutoriels et un mot sur trois m'est inconnu dans ceux pour les débutants, alors j'ai essayé les tutos pour les niveaux superieurs (des fois que...) mais c'est évidemment pire, je m'en sortirais peut-être mieux s'ils étaient écrit en chinois.

    Pour que j'en viennes au forum, c'est que j'ai déjà bien insisté avec les docs !


    Si c'est pas long à faire, j'aurais souhaité que quelqu'un me montre le code et il me suffirait de l'analyser, je connais ma façon d'apprendre les choses et je sais que c'est celle qui a toujours le mieux marchée avec moi, l'exemple, mais si ça prend trop de temps à coder, alors je ne voudrais pas que ça ralentisse quelqu'un de doué.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Si c'est pas long à faire, j'aurais souhaité que quelqu'un me montre le code et il me suffirait de l'analyser,
    Et bien comme je le disais tout à l'heure, dans la faQ (http://c.developpez.com/faq/cpp/?page=fichiers), il y a des exemples de code dont tu peux t'inspirer.

    Par exemple, pour lire ton fichier ligne par ligne :
    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
     
    #include <string>
    #include <fstream>
    #include <iostream>
     
    int main()
    {
        // le constructeur de ifstream permet d'ouvrir un fichier en lecture
        std::ifstream fichier( "fichier.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;
            }
        }
    }
    Essaie de voir si tu arrives deja à faire marcher ça...

    Sinon, pour lire des float, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    float f;
    fichier >> f;
    cout << f << endl;

  6. #6
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Ok.

    Alors, je veux bien te donner un coup de pouce, mais j'ai besoin de savoir plus précisément ce que tu souhaites faire.

    Donc, je te propose de procéder ainsi:
    1/ Dis-moi précisément ce que tu souhaite développer.
    -> Sur quelle plateforme développes-tu (windows, linux...)
    -> Souhaites-tu que ton programme soit protable (qu'il puisse être exécuté sur plusieurs plateformes) ?

    Et lorsque tu dis:
    Je cherche à lire trois floats qui se suivent, se trouvant dans un fichier pour les afficher dans des champs chacuns séparés.
    C'est trop vague:
    -> 3 floats qui se suivent dans un fichier ne me parait pas une bonne idée. Car pour un flottant, on ne sait pas combien de chiffres on va avoir avant et aprés la virgule. Il faut, à mon avis, qu'ils soient séparés, d'une façon ou d'une autre.
    -> Le fichier est de quel type (txt, xml, ...) ?
    -> "afficher dans un champ", donc tu va avoir desoin d'une interface graphique. Il n'y a pas de bibliothèque de gestion d'interface graphique par défaut en c++, tu va donc devoir en choisir une (ce qui signifie également l'installer et apprendre à l'utiliser).

    2/ Je te propose de séparer ton problème en sous-problèmes, afin de préocéder par étapes:

    a) implémenter un "hello word" (programme qui affiche "hello word")
    b) implémenter la classe qui va stocker tes données.
    c) implémenter une classe qui va lire ton fichier et les stocker dans la classe implémentée en b)
    d) implémenter la classe qui va afficher les données stockée dans la classe implémentée en b)

    Aller, au travail

    PS: pour la fac, c'était un mauvais jeu de mot avec FAQ... désolé

    [edit]Grillé par violette [/edit]
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Alors déjà merci beaucoup de te pencher sur mon problème et de me parler avec des mots simples !



    Quand je dis des flottants à la suite, je veux dire les uns après les autres dans le fichier.



    3 flottants dans le fichier qui donneraient :

    • Adresse 0 : 3F441B7D
    • Adresse 4 : 00000080
    • Adresse 8 : 3F5DB3D7


    Le fichier en hexa ressemble alors à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    3F441B7D000000803F5DB3D7


    Et à l'affichage dans une interface graphique Windows, avoir :

    • Variable A [0,76604444]
    • Variable B [0]
    • Variable C [0,86602540]

    (L'inter crochet représentant un champ dans mon exemple.)



    La plateforme : C'est ce qui m'attire le plus dans le C++ ; sa portabilité alors je souhaite apprendre à programmer le plus portable possible, même si les deux plateformes que je vise en priorité sont Windows et Linux.


    Le type de fichier : Un type inventé.


    Bibliothèque d'interface graphique : En effet, il faut que j'en trouve une que j'arrive à installer, je suis intervenu dans un sujet qui en parle justement. Mais je suis toujours aussi perdu, l'installation est très compliquée parmis ceux qui sont proposés, c'est effrayant, donc j'ai pas pu encore en arriver au stade de domptage du logiciel.



    Euh, "implémenter" c'est comme "construire" si j'ai bien compris, donc coder une partie.


    Alors,

    a) Le "Hello word!" est la seule chose que j'arrive à faire.

    b, c et d) J'ai compris que la moitié du rôle de la classe, je suis incapable d'en reconnaître une dans un code, quand elle commence et quand elle termine.



    Ps : J'avais compris la blague, malheureusement il m'arrive moi aussi de faire ce genre de blague.

  8. #8
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Citation Envoyé par Nikolas
    3 flottants dans le fichier qui donneraient :

    • Adresse 0 : 3F441B7D
    • Adresse 4 : 00000080
    • Adresse 8 : 3F5DB3D7


    Le fichier en hexa ressemble alors à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    3F441B7D000000803F5DB3D7
    D'accord, donc il s'agit d'un fichier en hexa. Comme l'a suggéré violette, tu trouveras ton bonheur dans la faq, en particulier celle ci (tu auras quelques petites adaptations à faire mais je te laisse chercher un peu )

    Citation Envoyé par Nikolas
    La plateforme : C'est ce qui m'attire le plus dans le C++ ; sa portabilité alors je souhaite apprendre à programmer le plus portable possible, même si les deux plateformes que je vise en priorité sont Windows et Linux.
    Alors il te faudra utiliser des bibliothèques portables. Le c++ fonctionne avec des bibliothèques. Une bibliothèque (pour faire simple) est un ensemble de fonctions qui sont rassemblées dans un fichier afin que les développeurs puissent les utiliser sans avoir à tout faire soi-même. Une bibliothèque (library en anglais) se présente sous forme de fichier .dll ou .lib.


    Citation Envoyé par Nikolas
    Euh, "implémenter" c'est comme "construire" si j'ai bien compris, donc coder une partie.
    Oui. Implémenter (qui est un abus de langage), ou implanter (plus juste mais moins usité) est, en gros, un synonyme de programmer. Mais il y a un piège, car implémenter peut prendre d'autres sens, j'y reviendrai.

    Citation Envoyé par Nikolas
    a) Le "Hello word!" est la seule chose que j'arrive à faire.
    C'est parfait.

    Citation Envoyé par Nikolas
    b, c et d) J'ai compris que la moitié du rôle de la classe, je suis incapable d'en reconnaître une dans un code, quand elle commence et quand elle termine.
    Le c++ est un langage oo (orienté objet). Ceci signifie que lors de la conception (la conception consiste à déterminer la façon dont on va s'y prendre pour faire un programme, avant de commencer à programmer), il va falloir penser tout le programme sous forme d'objets qui interagissent entre eux (je prend des raccourcis sinon demain j'y suis encore ). Un objet (ou classe) se présente ainsi, et nécessite 2 fichiers:
    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
    // Un fichier UnObjet.h (fichier en-tête, ou header en anglais), qui défini la classe:
    class UnObjet
    {
    public:
       UnObjet(); //constructeur
       ~UnObjet(); //destructeur
     
    //des variables et des méthodes
    }; // accolade fermante suivie d'un point virgule => fin de la définition de la classe.
     
    //un fichier UnObjet.cpp qui implémente la classe. (ici 'implémenter' est utilisé dans le sens de 'programmer le contenu de la classe', par opposition à définir la classe).
    UnObjet::UnObjet()
    {
    // implémentation du constructeur
    }
     
    UnObjet::~UnObjet()
    {
    // implémentation du destructeur
    }
     
    //etc.
    Note: le c++ est un langage difficile (peut-être le pire ), et, je ne voudrais pas te décourager, mais si tu n'as ni livres, ni accés à une formation, il va te falloir vraiment beaucoup de pugnacité et de persévérence. Si tu penses vraiment pouvoir y arriver, je te conseille de commencer, avant tout, par lire les cours en lignes, histoire d'assimiler le vocabulaire et les concepts (voir la section "Cours magistraux et d'initiation sur le langage C++" de cette page par exemple).
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Bonjour,


    FAQ : Je n'y comprends rien !


    Seconde ligne ça commence : Il faut visiblement avoir la bibliothèque "boost::filesystem" (d'ailleurs je vois pas pourquoi y'a "::") mais ça mène à un site étranger, alors que je m'attends plutôt à un fichier à télécharger lorsque qu'on parle de bibliothèque.

    J'ignore si les codes sont à tester avec une application console ou windows, j'ignore où il faut mettre le fichier, en tout cas j'ai beau le mettre dans le même dossier que le projet, dev-cpp ne le compile pas vu qu'il manque une bibliothèque.


    De la persévérance, je n'en manque pas, ça fait tout de même plus d'un an que j'essaie de comprendre. Mais c'est pas en fonçant délibérément la tête la première dans un mur en béton de deux mètres d'épaisseur qu'il va s'écrouler, au contraire on perd la tête de cette façon.



    Bibliothèque : Je crois que je comprends enfin avec ton explication.


    Implanter : C'est ce mot que j'utiliserais, alors.


    D'après ce que j'ai compris, classe ou objet signifie la même chose et est indéfinissable dans un code, car c'est dispersé partout.

    Mais là c'est compliqué, le truc qui fini par .h je pensais que c'était une bibliothèque appellée. Et j'ai l'impression que quand tu parles de fichier, c'est pas forcément un fichier comme on le voit dans l'explorateur de Windows mais un truc dans le code...

  10. #10
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    La FAQ rassemble un ensemble de questions et leurs réponses. Le lien donné ne pointait pas vers boost directement.

    Dans le contexte de mise en oeuvre d'algorithmes (/fonctions/...), "Implanter" est, je trouve, une très mauvaise traduction de "to implement". Cette traduction là concerne les déploiments de systême. Les derniers dicos de jargon que j'avais regardés faisaient enfin la différence.
    Bref, je préfère de loin l'angliscisme "implémenter". "mettre en oeuvre" ou "réaliser" étant les deux traductions les plus justes que je connaisse.

    Classe != Objet. En C++, Classe==type, Objet==instance de classe (variable).

    En C et C++, une bibliothèque, c'est un ensemble de fichiers : n * .h + 0/1 * .lib/.so/.a/.dll -- n>=1. Les fichiers d'en-tête (.h) définissent l'interface des fonctions dont la traduction binaire se trouvent dans le .lib/.dll/.a/.so. On peut aussi y trouver des constantes, des définitions de types, des fonctions inlines, des macros, ...
    Sur le site d'Emmanuel (forum C) tu trouveras une meilleure définition de ce qu'est une bibliothèque en C.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    (d'ailleurs je vois pas pourquoi y'a "::")
    Parce que filesystem est un sous-espace de nom de boost.
    Boost ftw

  12. #12
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Personellement, je ne crois pas aux FAQ pour commencer à découvrir un langage, surtout un premier langage. Un livre ou un "prof" me semblent de bien meilleures solutions au début. Les FAQ viennent dans un second temps.

    A lire tes messages, il semble que tu commences non seulement en C++, mais en programmation en général, aussi un livre qui peut me sembler convenir est Je me lance ! : Une introduction à la programmation C++ (ISBN: 2742936521)

    Autrement, essaye de voir dans ton entourage s'il n'y a pas quelqu'un qui puisse t'aider. Un tête à tête direct d'une heure peut permettre déjà de partir d'un bon pied.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Bien vu JolyLoic, je débute dans la programmation d'application et pas qu'en c++, tout à fait. C'est un détail pourtant important que j'ai oublié de préciser.


    Citation Envoyé par JolyLoic
    Autrement, essaye de voir dans ton entourage s'il n'y a pas quelqu'un qui puisse t'aider. Un tête à tête direct d'une heure peut permettre déjà de partir d'un bon pied.
    Je ne dois pas savoir m'entourer correctement, alors. Mais s'il en existait un qui sache programmer dans mon entourage, ça ferait mon bonheure mais son malheure, le pauvre !


    Merci du conseil pour le livre.



    En tout cas, pour ce qui est de l'exemple impossible, je crois bien que je vais devoir chercher dans des logiciels au code source libre, qui seraient capables de lire au moins un flottant, et c'est une autre paire de manche pour isoler les bonnes lignes...

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par violette327
    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
     
    #include <string>
    #include <fstream>
    #include <iostream>
     
    int main()
    {
        // le constructeur de ifstream permet d'ouvrir un fichier en lecture
        std::ifstream fichier( "fichier.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;
            }
        }
    }
    Comment fait-t-on pour compiler ce code sans erreur ?

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    À vu de nez, je ne vois qu'une seule erreur: Il manque le return 0; à la fin de la fonction...
    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.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Médinoc
    À vu de nez, je ne vois qu'une seule erreur: Il manque le return 0; à la fin de la fonction...
    Où se trouve la "fonction", dans ce code ?

  17. #17
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    main() est une fonction...
    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.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Dans ce cas...


    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
    23
    #include <fstream>
    #include <string> 
    #include <iostream>
     
    bool is_readable( const std::string & file ) 
    { 
        std::ifstream fichier( file.c_str() ); 
        return fichier != 0; 
    } 
     
    void Exemple()
    {
        using std::cout;
        if ( is_readable( "fichier.txt" ) ) 
        { 
            cout << "Fichier existant et lisible.\n"; 
        } 
        else 
        { 
            cout << "Fichier inexistant ou non lisible.\n"; 
        } 
    }
    return 0;
    Il enlève aucune erreur et en ajoute une de plus.

  19. #19
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il y a un return 0; en trop, et pour l'autre erreur j'hésite entre un cafouillage au niveau du paramètre file et une erreur sur le test de fichier.
    Et aussi, il me semble qu'il est conseillé d'utiliser endl au lieu de \n pour terminer des lignes sur les streams, entre autres pour des raisons de bufferisation.
    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.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Il faudrait le taper comment, ce code ?

    Ça devient chaud à suivre, s'il faut enlever, ajouter un return 0;, endl à mettre où ça, etc...


    NB : Niveau débutant, débutant, aucune experience dans aucun language de programmation objet.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/05/2008, 09h29
  2. [Débutante] Extraire des données à partir d'un fichier html avec xsl
    Par sab_etudianteBTS dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/03/2008, 09h10
  3. utiliser xslt pour afficher du texte à partir d'un fichier xml
    Par med_ellouze dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/08/2007, 14h52
  4. Réponses: 5
    Dernier message: 08/08/2007, 16h44
  5. Réponses: 4
    Dernier message: 19/03/2006, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo