2016-04-16 12 views
0

Ich habe versucht, nach Tutorials zu suchen und die Dokumente zu lesen, aber es gibt fast keine Informationen darüber, wie man SDL zum Lesen und Schreiben von Textdateien usw. verwendet. Wäre es also eine bessere Idee, nur reguläres C++ zu verwenden?Wie soll ich Dateien in C++ mit SDL lesen?

+1

Wenn Sie nicht definieren, was Sie mit "gut" meinen, fragen Sie nur nach Meinungen und stellen Ihre Frage außerhalb des Themas. Auch wenn Sie dies getan haben, stellen Sie bitte sicher, dass Sie sich zuerst selbst Mühe geben, die Situation einzuschätzen. –

+0

Nun, ich meinte, ich suchte nach der besseren Option. Sind sie beide einander praktisch ähnlich oder gibt es einen Vorteil gegenüber dem anderen? –

+0

Was immer die Arbeit erledigt (Datei in den Speicher) scheint mir "gut genug" zu sein. Warum sollte die Lösung eine oder die andere Bibliothek verwenden? Am Ende sind es nur Bytes im Speicher; also was auch immer funktioniert;) –

Antwort

0

Während SDL RWops haben, ist seine API genau das gleiche wie StdLib fread/fwrite/fseek. Es dient jedoch unterschiedlichen Zwecken. Es kann (und, da SDL spielorientiert ist, sehr oft) Fälle geben, in denen der Datenverarbeitungscode nicht wirklich darauf ankommt, woher Daten kommen (reguläre Datei, Byte-Array im Speicher, zip oder irgendeine andere Form von Archiv, Netzwerkquelle, oder sogar prozeduraler Generator). Wenn dieser Code eine RWops-ähnliche Abstraktion verwendet, können Sie einfach eine neue Implementierung dafür schreiben, und es wird ohne jegliche Modifikation oder Neukompilierung funktionieren. SDL selbst und alle SDL-basierten Bibliotheken wie SDL_image, SDL_ttf usw. unterstützen das Laden von Daten aus RWops sowie einige 'Standard' RWops-Implementierungen wie SDL_RWFromFile oder SDL_RWFromMem.

Wenn Frage ist "was du verwenden sollst", dann gibt es wirklich keine Antwort, da es hier kein "Besseres" gibt. Wenn Sie jedoch eine Bibliothek schreiben, ist es sehr sinnvoll, eine Seite bereitzustellen, auf der die Seite neu definiert werden kann (oder zumindest Daten aus dem Speicher-Array laden).