Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

25.05.2014, 23:22

C++ | sf::string als Dateiname verwenden [gelöst]

Hey Leute,

bin noch recht neu hier und möchte mich vorab für Posting Fehler entschuldigen.

Habe folgendes Problem: Ich möchte für die WM ein Tippspiel erstellen. Dazu soll das Programm, nachdem der User ein Namen für das Spiel eingegeben hat, eine neue Datei anlegen in der die Spieldaten gespeichert werden.

Ich habe folgende Routine für den Spiel Namen angegeben (strGameName soll der Spielname sein):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
if(initNewGame.type == Event::TextEntered)
{
    if(initNewGame.text.unicode > 32 && initNewGame.text.unicode < 127 && strGameName.getSize() < 10)   // sf::String strGameName weiter oben deklariert
    {
        strGameName += (char)initNewGame.text.unicode;
    } else if (initNewGame.text.unicode == 8 && strGameName.getSize() > 0)
    {
        strGameName.erase(strGameName.getSize() -1, strGameName.getSize());
    }
    txtGameName.setString(strGameName);    //sf::Text txtGameName - für die Textausgabe

}// if(initNewGame.type == Event::TextEntered




Und so sieht der Code Schnipsel aus, die den eingetragenen Namen in die Datei schreiben soll:

C-/C++-Quelltext

1
2
3
4
5
6
7
strGameName = strGameName + ".bin";
                        
std:: fstream save;

save.open(strGameName, std::ios::out | std::ios::binary);
//... irgendwelche weiteren Anweisungen
save.close();



Bekomme Folgendes von InteliSense:
10 IntelliSense: Mehrere Instanzen von "Überladene Funktion "std::basic_fstream<_Elem, _Traits>::open [mit _Elem=char, _Traits=std::char_traits<char>]"" stimmen mit der Argumentliste überein

-> heißt wohl, dass strGameName nicht der Richtige Typ ist.

Meine Frage: welchen Typen muss ich verwenden bzw. wie kann ich den Typen entsprechend umwandeln.

Ich verwende SFML 2.1 und VisualStudio2010 (Habe noch einen XP-Rechener)

Schon mal vielen Dank für eure Arbeit
VG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mah0ney« (01.06.2014, 13:46)


2

25.05.2014, 23:34

Willkommen!
In der Dokumentation der SFML zu sf::String ist die Funktion sf::String::toAnsiString() auffindbar, die liefert einen std::string. :)

MfG
Check

3

26.05.2014, 16:43

Hab vielen Dank, hat Super funktioniert!
VG

Werbeanzeige