2017-12-16 9 views
0

I SFML Bibliothek für irgendeine Art von grafischen Arbeiten verwenden, und ich mag den Text speichern, die ich unter Verwendung der Tastatur eingegeben, aber sie zeigt einen Fehler mir bitte erklären, wie es möglich ist:Unable Text speichern in SFML 2.4

#include <SFML/Graphics.hpp> 
#include <iostream> 
#include <string> 
using namespace std; 
int main() 
{ 
    string s=""; 
    sf::Window window(sf::VideoMode(800, 200), "Ludo",sf::Style::Default); 
    window.setKeyRepeatEnabled(false); 
    while (window.isOpen()) 
    { 
     sf::Event event; 
      while (window.pollEvent(event)) 
      { 
       if (event.type == sf::Event::Closed) 
       { 
        window.close(); 
       } 
       else if (event.type == sf::Event::EventType::TextEntered) 
       { 
        s += event.type.unicode; 
       } 
      } 
      window.display(); 
    } 
    return 0; 
} 

der Fehler ist:

sf :: Event-Veranstaltung, Ausdruck

Antwort

1

Ihr Problem diese Linie einen Klassentyp ist haben muss:

s += event.type.unicode; 

event.type ist ein Feld, das die Art des Ereignisses zu beschreiben (Sie es in dem Fall verwendet habe Überprüfung oben).

Was Sie dann versucht haben, ist der Zugriff auf ein Mitglied unicode, die offensichtlich fehlschlägt, weil type ist keine Klasse oder Struktur hier. Was Sie eigentlich wollen, ist das Feld sf::Event::text, das eine Struktur ist.

Als solcher würde diese Zeile wie folgt aussehen haben:

s += event.text.unicode; 
+0

nun, was soll ich es tun speichern in einem String? –

+0

@ALIHAMZABASHIR So wie Sie es tun sollten, müssen Sie möglicherweise ein String-Objekt manuell erstellen, um es anzuhängen. – Mario