Koji jezik?
Jel me može netko uputiti na primjer koji će mi pokazati kako raditi sa fileovima. Želim u jedan file spremiti nekoliko varijabli, a da ih kasnije opet mogu učitati u program kad mi budu potrebne(pri ponovnom paljenju programa). Sorry ako je već bilo o tome, ali nigdje ništa ne nađem o tome, a treba mi primjer, jer ja iz teorije teško mogu nešto sklepati.
nisam siguran zanima li te samo spremanju datoteke (rad s datotekama) ili kako u string zapisati i iz stringa "pročitati" varijable ..
ako je ovo drugo, onda je najjednostavnije sve varijable pretvoriti u string, i zapisati ih u obliku "v1 v2 v3"; za pročitati to napraviš neku petlju koja će prelomiti takav string u polje (s elementima v1,v2,v3)
možeš koristiti i xml, ali ako imaš nekoliko jednostavnih podataka, nema potrebe za njim
The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
<3 <3 <3 <3 <3 <3 <3
ŠIRI SA MNOM LJUBAV Cherry!
U C++ je to moguće na dva načina, od kojih svaki ima dva pristupa. Općenito, pristupi mogu biti tekstualni (slijedni, formatirani) ili binarni (direktni, neformatirani). Pošto vjerujem da tebe zanima obična obrada teksta onda je to ovaj prvi pristup.
Evo kako možeš ispisati sadržaj neke datoteke upotrebom C funkcija:
Gotovo isto je za upis u datoteku, samo što umjesto funkcije fscanf koristiš fprintf.Code:#include <stdio.h> #include <stdlib.h> int main() { FILE* f; char c, dat[256]; printf("Unesite ime datoteke: "); scanf("%s", dat); if((f = fopen(dat, "r"))==NULL){ printf("Datoteka se ne može otvoriti za citanje!"); return -1; } while (!(feof(f))) { // sve dok nije kraj datoteke fscanf(f, "%c", &c); // citaj znak po znak printf("%c", c); // ispisi ucitani znak } fclose(f); return 0; }
Ako već hoćeš koristiti baš C++ tada je malo kompliciranije jer se moraš služiti tokovima i klasama. Primjerice:
Ovdje koristiš fstream tok za pisanje u datoteku. Prvo se kreira instanca, pa operatorima << vršiš upis u datoteku. Slično je i za čitanje iz datoteke:Code:int main() { float BROJ = 3.6; int mode = ios::trunc | ios::app; //nacin otvaranja fstream ulaz("Tekst.txt", mode); ulaz << "Znakovni niz " << BROJ << endl << 'c'; return 0; }
...samo što se ovdje koristi ifstream tok i operatori >>. U svakom slučaju za početnika je jednostavniji i brži način sa C funkcijama.Code:#include <iostream.h> #include <fstream.h> int main() { float a, b; ifstream citaj("Tekst.txt"); citaj >> a; citaj >> b; cout << a << "+" << b << "=" << (a+b); return 0; }
E, puno hvala! Da, radim u C++u. U biti, moja mala tajna je da želim napraviti console-based RPG Ono, čisto da vidim koliko znam i da naučim nešto novo. Neće biti grafike, samo čisti gameplay. Trenutno pravim engine (lol, čudo je to reči), pa sam se naljutio što nisam znao raditi sa stringovima (dok nisam googleao C++ Strings) pa sam otišao raditi meni igre I tamo sam vidio da ne znam napraviti load/save. Tak da ću najvjerovatnije često otvarat topice tipa "Kako napraviti inventory" (o moj Bože, sad mi je sinuo da ne znam ni to), ali ono, po potrebi i ako ne nađem riješenje na googleu. Mislim, dosta mi je svih makera, creatora, game magica i šta ja znam šta sve ne, gdje se pritisnu 2-3 gumbića i svaka budala kažem "napravio sam igru".
E da, dali je pametno taj sistem koristiti za save fileove? Mislim, cheatat će se moći, ali baš me briga za to, tko želi igrati igrati će.
Mah, cheatanje je zadnje oko čega bi se sada trebao brinuti. Slobodno koristi ovakav sistem - biće ti dobro za početak a i takav pristup je sasvim dovoljan za tvoj projekat. I da, drago mi je što je još neko odustao od game makera i uzeo praviti tekstualni RPG - to je moja vječita preporuča za početke game developmenta =)Izvorno postao DragonSoul
Eh, uvijek se još ne mogu naviknuti na to da pravim engine Ono, mislim svatko danas zna upaliti maker pritisnuti "Make Game" i eto ga na. Ja želim nešto naučiti. Hoće li netko cheatati sasvim mi je svejedno. U biti imam jedino vidljivo meni(koji može loadati save koji ne postoji, about i exit), a imam 244 linija koda (to meni puno zvuči) A da sad ne otvaram novu temu:
Jeli postoji razlika da svoje deklaracije klasa i često korištenih funkcija spremim kao .h, .hpp ili .cpp? Do sada imam samo 4 filea, 3 ccpa(Main, MainMenu, Load_Save) i jedan class header. Sad ne želim pokusitari sa ovim, jer radi, ali jeli postoji razlika?
Ja sam si obično za projekte radio INI datoteke gdje bi pisao kodirane podatke, a u zadnje vrijeme najviše koristim windows registry. Program napravi ključ u registry-u i unutra spremi sve potrebne varijable koje kasnije bez problema pročita i iskoristi.Izvorno postao DragonSoul
Hm..... vidiš i to je dobra ideja, ali meni treba kao savegame. Sada, ne vrijedi mi savegame spremati u registry, jer u slučaju da će netko ovo moje igrati i mora rušiti winse gubi napredak, a ovako ima jedan file od kojeg napravi backup i gotovo. I ne volim praviti programe koji diraju registy, da još AV prepozna moj nevini projekt kao virus
Tracer
Odlično,a evo i sa službene stranice:
http://www.cplusplus.com/doc/tutorial/files.html
Izvorno postao Fenrir