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

SDL Discussion :

Lecture et écriture d'un fichier texte


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 47
    Par défaut Lecture et écriture d'un fichier texte
    Bonsoir, j'ai déjà posté ce sujet dans la partie C++, mais je me permet dans le poster également ici car je suis dans une galère pas possible
    En gros, je suis en projet UML/C++ où je dois créer un pacman, on a choisi de le faire en UML, seul hic, une de mes fonctions est codée purement en C++ et j'ignore totalement comment la passer en SDL, j'ai regardé après je ne sais combien de sites en recherchant sur google, mais rien qui ne m'aide véritablement, surtout que je suis débutante en la matière.
    En fait, mon code permet d'écrire dans un fichier texte et d'afficher ce que contient le fichier texte.
    Voici mon code :

    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    #include "score.h"
    #include <string>
     
    using namespace std;
     
    int main()
    {
        score a;
        a.ecrire_score();
        a.affiche_score();
     
        return 0;
    }
    score.h
    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
    #ifndef SCORE_H
    #define SCORE_H
    #include <string>
     
    class score
        {
            private:
            std::string pseudo;
            std::string ligne;
            int points;
     
            public:
            score();
            void ecrire_score();
            void affiche_score();
        };
     
    #endif

    score.cpp
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include "score.h"
    #include <iostream>
    #include <fstream>
    #include <string>
     
    using namespace std;
     
    score::score()
        {
        }
     
    void score::ecrire_score()
        {
            ofstream fichier("test.txt", ios::app); //Ouvre le fichier texte et permet d'écrire à la suite (ios::app)
            if(fichier)//Si le fichier existe
            {
                    cin >> pseudo;
                    cin >> points;
                    fichier << pseudo << " " << points << endl;
                    fichier.close();//On doit toujours fermer le fichier
            }
            else
                    cerr << "Impossible d'ouvrir le fichier !" << endl;
     
        }
     
    void score::affiche_score()
        {
            ifstream fichier("test.txt", ios::in); //Constructeur d'initialisation qui ouvre le fichier en lecture
            if(fichier) //Si l'ouverture a fonctionné
                {
                    while(getline(fichier, ligne))  //Tant que l'on peut mettre la ligne dans "contenu"
                        {
                            cout << ligne << endl;  //On l'affiche
                        }
                }
            else
                    cerr << "Impossible d'ouvrir le fichier" << endl; //cerr est la sortie standard des erreurs
        }
    Sérieusement je suis en grosse galère, je dois rendre le projet demain midi et j'ai encore plein de travail :'(
    Enfin voilà, merci d'avance pour vos aides !!

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Citation Envoyé par 0nn2belle Voir le message
    En gros, je suis en projet UML/C++ où je dois créer un pacman, on a choisi de le faire en UML, seul hic, une de mes fonctions est codée purement en C++ et j'ignore totalement comment la passer en SDL, j'ai regardé après je ne sais combien de sites en recherchant sur google, mais rien qui ne m'aide véritablement, surtout que je suis débutante en la matière.
    Avec le code donné je ne vois vraiment pas le rapport avec SDL...
    si tu dois rendre le projet demain et que tu as juste fait une classe pour le traitement des scores tu risques de te coucher très tard ce soir
    Et puis prendre UML pour faire un pacman...
    dans un pacman il y a à peine 2 ou 3 classes qui se battent en duel...
    est-ce que tu connais un minimum SDL ?

    seul hic, une de mes fonctions est codée purement en C++
    c'est pas un problème ; tu peux parfaitement faire une base avec un main() et des fonctions SDL pour charger les bitmaps et le mode vidéo et faire des classes d'entités par exemple pour le joueur pour les fantomes..
    il y a des tas d'exemples d'utilisation SDL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void score::ecrire_score()
    je comprends mieux maintenant....
    si tu veux afficher du texte il ya SDL_ttf
    Sinon la manière la plus triviale et basique c'est
    1-avec un éditeur de dessin mettre dans une bitmap les lettres de l'alphabet et les chiffres séparées par des espaces réguliers par exemple tous les 20 pixels.
    2-ensuite charger la bitmap dans une SDL_Surface, mettre les lettres représentées par des SDL_Rect dans un tableau.


    3-Puis si tu veux afficher par exemple 20 il te suffit de définir un char[] et de balayer ce char[] ( ou bien un std::string)
    Si tu trouves le charactère '0' il suffit de retirer 31-30 puisque le code ASCII de 0 commence à 30 en décimal
    Si tu as 0 ou 1 ou 2 eh bien c'est la bitmap correspondante dans le tableau de SDL_Rect


    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
    24
    25
    26
    27
    28
    29
     
     
    //// initialisation
    SDL_Rect tabAlphanum[38]; // 28 lettres + 10chiffres
     
    for ( i=0;i,38;i++)
    {
    tabAlphanum[i].x=i*20;// espacement de 20 pixels
    tabAlphanum[i].y=0;// espacement de 20 pixels
    tabAlphanum[i].w=20;// espacement de 20 pixels
    tabAlphanum[i].h=20;// espacement de 20 pixels
     
     
    }
     
     
    // puis affichage
    unsigned char index;
    std::string score="score 20 pts";
    SDL_Surface *BitmapAlphaNum;
    SDL_Surface *ecran;
    SDL_Rect dstrect;/// A INITIALISER ET donner les bonnes dimensions.
    for ( int i =0; i < score.size();i++)
    {
    index = score[i]; 
    index-=30; //
    SDL_BlitSurface(BitmapAlphaNum, &tabAlphanum[index],ecran,&dstrect );
     
    }
    ESt-ce que tu comprends ?

Discussions similaires

  1. lecture / écriture dans des fichiers text
    Par nadir CoCo dans le forum C++
    Réponses: 6
    Dernier message: 28/06/2012, 09h10
  2. lecture-écriture dans un fichier text
    Par guefrachi dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 29/07/2010, 20h28
  3. Lecture et écriture d'un fichier texte
    Par 0nn2belle dans le forum C++
    Réponses: 4
    Dernier message: 12/02/2010, 13h19
  4. lecture/écriture dans un fichier texte
    Par the watcher dans le forum Delphi
    Réponses: 23
    Dernier message: 15/05/2007, 10h57
  5. Réponses: 4
    Dernier message: 02/05/2007, 10h41

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