Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - valentin_616

Pages: [1]
1
Suggestions de nouvelles fonctionnalités / Utiliser <cinttypes>
« le: Septembre 11, 2016, 09:42:07 pm »
Comme je suis nouveau dans le monde du c++ je me suis dit que d'aller jeter un coup d'œil au code source SFML serait un bon entraînement.
Et je suis tombé sur sa dans le fichier SFML/include/SFML/Config.hpp:

// 8 bits integer types
    typedef signed   char Int8;
    typedef unsigned char Uint8;

    // 16 bits integer types
    typedef signed   short Int16;
    typedef unsigned short Uint16;

    // 32 bits integer types
    typedef signed   int Int32;
    typedef unsigned int Uint32;

    // 64 bits integer types
    #if defined(_MSC_VER)
        typedef signed   __int64 Int64;
        typedef unsigned __int64 Uint64;
    #else
        typedef signed   long long Int64;
        typedef unsigned long long Uint64;
#endif
 


Il existe dans la librairie standard <cinttypes> depuis c++11 et pour le anciens standards <inttypes.h> qui ajoute des variables pour les entiers sur le nombre de bits que l'on veut.

Exemple:
#include <cinttypes> //depuis c++11
#include <inttypes.h> //pour anciens standards

int main(){
    int8_t v1; //entier signé sur 8 bits
    uint8_t v2;//entier non signé sur 8 bits

    int16_t v3;//sur 16 bits
    uint16_t v4;

    int32_t v5;//sur 32 bits
    uint32_t v6;

    int64_t v7;//sur 64 bits
    uint64_t v8;
}
 

Donc pourquoi ne pas utiliser <cinttypes> ?

2
Général / Re : [Résolu] Problème accents
« le: Août 31, 2016, 12:40:15 pm »
Merci pour toutes ces informations utiles et merci à toute l'équipe SFML pour cette géniale api.  :)

3
Général / Re : [Résolu] Problème accents
« le: Août 31, 2016, 11:49:30 am »
J'ai refais un petit programme avec le sf::String pour tester et sa marche nickel Merci Beaucoup.

#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <fstream>
#include <cinttypes>


sf::RenderWindow window; //je préfère mettre window en global car je vais l'utilise dans beaucoup de fonctions
sf::String texte; //il est global pour tester mais ne le restera pas
sf::Font font; //font pour tout le programme

void controles(){
    sf::Event event;
    sf::Text texteAfficheable;
    texteAfficheable.setFont(font);
    texteAfficheable.setCharacterSize(100);
    texteAfficheable.setPosition(200,200);


    while(window.pollEvent(event)){
        if(event.type == sf::Event::Closed){
            window.close();
        }
        if(event.type == sf::Event::TextEntered){
            texte = event.text.unicode;
        }
    }

    texteAfficheable.setString(texte);
    window.draw(texteAfficheable);
    window.display();
    window.clear();
}

int main()
{
    font.loadFromFile("Police.ttf");
    window.create(sf::VideoMode(1280,720),"Fenêtre",sf::Style::Close);
    window.setVerticalSyncEnabled(true);

    while(window.isOpen()){
        controles();
    }
    return 0;
}
 

C'est juste dommage que pour écrire ou récupérer du texte dans un fichier l'opérateur << ne soit pas surchargé et qu'on doive utiliser texte.toAinsiString().

Et pour finir une petite question : si je fais un programme qui n'as pas besoin d'utf32 est il mieux d'utiliser sf;:String ou std::string ?

4
Général / Re : [Résolu] Problème accents
« le: Août 30, 2016, 08:43:11 pm »
Le but de mon programme est de poser une question à l'utilisateur et de vérifier si sa réponse est juste ou fausse. L'utilisateur pourra créer ses propres questionnaires.
Mais pour cela il me faut pouvoir récupérer le réponse de l'utilisateur dans un "std::string" car je peux facilement le comparer à un autre et l'afficher avec SFML.
Je ne vais donc pas utiliser "std::cout" mais "sf::Text" pour l'afficher.
Je donnerai le code source et le programme compilé dans la rubrique "Projects SFML" quand j'aurai terminé ou suffisamment avancé.

5
Général / Re : Problème accents
« le: Août 30, 2016, 07:21:33 pm »
Merci le problème est résolu.
    sf::Event event;
    std::string texte;

    while(window.pollEvent(event)){
        if(event.type == sf::Event::Closed){
            window.close();
        }
        if(event.type == sf::Event::TextEntered){

            //si le caractères est égal au nombre qui correspond alors texte est égal au bon caractère
            if(event.text.unicode == 224){
                texte = "à";
            }
            else if(event.text.unicode == 232){
                texte = "è";
            }
            else if(event.text.unicode == 233){
                texte = "é";
            }
            else if(event.text.unicode == 234){
                texte = "ê";
            }
            else{
                texte = event.text.unicode;
            }
            std::cout<<texte<<std::endl<<std::endl;
        }
    }
 

C'est pas optimal mais sa fonctionne.

6
Général / Re : Problème accents
« le: Août 30, 2016, 01:12:41 pm »
Merci de cette réponse sa fait plaisir de voir un développeur de SFML proche de sa communauté.

Mais le problème ne viens pas de "cout"  ou  des "strings"  car ce code fonctionne :
string texte;
texte = "éèêà";
cout<<texte<<endl;
 

Le résultat dans mon terminal (je suis sur ubuntu) est : "éèêà".

J'ai essayé sf::Utf<32> mais je ne comprends pas comment sa fonctionne.

7
Fenêtrage / Re : Exception à la création d'une sf::Window
« le: Août 29, 2016, 09:26:08 pm »
Salut
essai:
sf::Window window(sf::VideoMode(1280,720),"SFML window")
 

8
Général / [Résolu] Problème accents
« le: Août 29, 2016, 09:19:48 pm »
Bonjour tout le monde.
J'ai besoin d'aide car je n'arrive pas à récupérer les accents (é , è , à) avec Event::TextEntered alors qu'avec les caractères classique sa marche

Voici le code:
    std::string texte;
    sf::Event event;

    while(window.pollEvent(event)){
        if(event.type == sf::Event::Closed){
            window.close();
        }
        if(event.type == sf::Event::TextEntered){
            texte = event.text.unicode;

            std::cout<<texte<<std::endl;
        }
    }
 

Merci de m'aider

Pages: [1]
anything