Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - File testo Visual C++
Forum - C/C++ - File testo Visual C++

Avatar
Kroj (Normal User)
Newbie


Messaggi: 4
Iscritto: 25/08/2012

Segnala al moderatore
Postato alle 12:41
Sabato, 25/08/2012
Salve a tutti, sono nuovo del forum e scrivo per disperazione per non aver trovato niente di particolarmente utile nelle guide online.
Vado al problema, sto scrivendo un banale ping-pong 2D dove si gioca contro il computer, che non può perdere ma l'obbiettivo è fare il record. Come è ovvio devo scrivere (e dunque leggere) il record in un file di testo (.txt). Su internet ho trovato una decina di funzioni ma quasi nessuna ha funzionato per scrivere e neanche una per leggere il testo dal file.
Tenendo presente il compilatore (Visual C++ 2008 della Microsoft) c'è qualcuno che è in grado di schiarirmi le idee su :
1. Un paio di funzioni da utilizzare per Leggere-Scrivere su un .txt;
2. Tipologia di stringhe da utilizzare;
3. Se riuscite anche come convertire le stringhe in un tipo da utilizzare con le librerie SDL.
4. (Per favore non ditemi che le SDL non vanno bene perchè sono impedito con qualunque tipo di altre librerie grafiche e almeno le SDL hanno una buona guida online)

Grazie mille a tutti in anticipo.

PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 13:13
Sabato, 25/08/2012
quanti risultati cercando su google "c++ input output file".. il primo per esempio http://www.cplusplus.com/doc/tutorial/files/  ;. . .

Tipologia di stringhe da usare? cosa intendi?

Per il rendering su schermo di testo, usa la libreria SDL_TTF ..per scrivere chiama le varie funzioni

TTF_RenderText_<Solid/Shaded .. ecc ecc>

inoltre dato che per leggere da file, se segui il tutorial che ti ho mandato, ottieni un oggetto di tipo std::string che contiene la linea corrente del file, per convertirlo a char* (parametro richiesto dalle funzioni TTF_RenderText) dovrai fare un const_cast<char*>(line.c_str()); ..tutto chiaro?

dato che sei nuovo del forum, due indicazioni.. intanto dovresti presentarti nell'apposita sezione "Presentiamoci" poi ti consiglio di leggere il regolamento,
per esempio il titolo dovrebbe essere esplicativo del post che scrivi, e inoltre quando tu hai un problema e chiedi agli altri, nessuno ti fornira' il codice pronto, primo perche' non si fanno programmi a richiesta su questo forum e poi soprattutto perche' per te non sarebbe utile :) infatti come vedi ti ho linkato una pagina che ti spiega come fare, non ti ho dato il codice pronto ;) anche se molti utenti all'inizio soprattutto scrivono "potreste scrivermi una funzione che.." (non mi sembra il tuo caso)

tornando al tuo post di consiglio un paio di guide per SDL molto utili
una e' quella presente qui sul sito : http://www.pierotofy.it/pages/guide/Guida_SDL/
un altra che a me personalmente pare ottima e' http://lazyfoo.net/SDL_tutorials/index.php che inoltre spiega come installare le SDL in diversi sistemi operativi, negli ambienti di sviluppo piu' conosciuti ;)

l'ultimo consiglio che ti do e' quello di imparare bene il linguaggio prima di lanciarti nel programmare videogiochi perche' saperlo bene ti tornera' molto utile! :k:

PM Quote
Avatar
Kroj (Normal User)
Newbie


Messaggi: 4
Iscritto: 25/08/2012

Segnala al moderatore
Postato alle 0:22
Domenica, 26/08/2012
Prima di tutto grazie per il primo sito, quella guida non l'avevo letta bene perchè mi sembrava simile ad un'altra che non avevo trovato utile. Volevo poi scusarmi perchè avendo un paio di minuti per scrivere il tutto prima di uscire non ho avuto tempo di presentarmi (rimedierò! ;) ). In oltre non mi sembra di aver chiesto codice pronto, la mia intenzione era quella di confrontarmi con altri utenti che potevano aver avuto lo stesso problema e magari avevano risolto con un paio di semplici funzioni che io non riuscivo a scovare in rete (la maggior parte perchè mi ritornavano stringhe di tipo diverso da quello gestito dalle SDL, problema che spero di risolvere con const_cast<char*>(line.c_str())). Il titolo non mi sembrava fuori luogo, chiedevo informazioni varie sull'I/O di file di testo in C++. Infine, devo riconoscere che in occasioni come questa è necessario leggersi qualche lunga e noiosa guida anzichè buttarsi e risolvere i problemi manmano che si presentano, ma magari è anche utile chiedere a qualcuno come voi programmatori esperti. Adesso provo con i tuoi suggerimenti poi ti faccio sapere ;) !

Ultima modifica effettuata da Kroj il 26/08/2012 alle 0:31
PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 11:51
Domenica, 26/08/2012
Testo quotato

Postato originariamente da Kroj:

Prima di tutto grazie per il primo sito, quella guida non l'avevo letta bene perchè mi sembrava simile ad un'altra che non avevo trovato utile. Volevo poi scusarmi perchè avendo un paio di minuti per scrivere il tutto prima di uscire non ho avuto tempo di presentarmi (rimedierò! ;) ). In oltre non mi sembra di aver chiesto codice pronto, la mia intenzione era quella di confrontarmi con altri utenti che potevano aver avuto lo stesso problema e magari avevano risolto con un paio di semplici funzioni che io non riuscivo a scovare in rete (la maggior parte perchè mi ritornavano stringhe di tipo diverso da quello gestito dalle SDL, problema che spero di risolvere con const_cast<char*>(line.c_str())). Il titolo non mi sembrava fuori luogo, chiedevo informazioni varie sull'I/O di file di testo in C++. Infine, devo riconoscere che in occasioni come questa è necessario leggersi qualche lunga e noiosa guida anzichè buttarsi e risolvere i problemi manmano che si presentano, ma magari è anche utile chiedere a qualcuno come voi programmatori esperti. Adesso provo con i tuoi suggerimenti poi ti faccio sapere ;) !



aspetto il risultato :k:

PM Quote
Avatar
Kroj (Normal User)
Newbie


Messaggi: 4
Iscritto: 25/08/2012

Segnala al moderatore
Postato alle 12:04
Domenica, 26/08/2012
good funziona tutto, manca solo di spiegargli che deve cambiare il record solo se il punteggio è maggiore di quello che c'è già... quindi devo convertire le stringhe in integer e confrontarli... penso di riuscire a trovarlo in qualche guida... poi devo regolare il frame-rate ma quello è tutt'un altra storia.

PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 12:09
Domenica, 26/08/2012
per le stringhe in int, funzione atoi() ..ma tutto cio' e' trattato in qualsiasi manuale di C o C++ :k:

PM Quote