|
![]() |
#1 | |
Premium
Datum registracije: May 2007
Lokacija: Croatia
Postovi: 270
|
C i datoteke
trebaju mi zaista osnove, kako nešto upisati u datoteku te kako poslije to pročitati. Nešto sam sklepao za unos međutim čim unesem putanju datoteke, uopće ne dođe do unosa već se samo stvori prazna datoteka. to da je prazna sam provjerio tako što sam je otvorio u notepadu. Citiraj:
|
|
![]() |
![]() |
![]() |
#2 |
Premium
Datum registracije: Mar 2004
Lokacija: Bjelovar/Zagreb
Postovi: 357
|
Ovo je uglavnom ok. No, u datoteku zelis upisati vrijednost varijable c, a tu vrijednost nigdje ne postavljas. Nadalje, funkciji fprintf si predao adresu te varijable, a trebao si njezinu vrijednost. Umjesto linije: fprintf(f, "%c", &c); napisi: c = 'c'; fprintf(f, "%c", c); |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#3 | |
Lunatic
Datum registracije: Feb 2006
Lokacija: Varaždin
Postovi: 213
|
Citiraj:
|
|
![]() |
![]() |
![]() |
#4 | |
Premium
Datum registracije: May 2007
Lokacija: Croatia
Postovi: 270
|
Evo sam se malo zaigrao i došao do ovoga, samo me još pere jedna stvar. Ako unesem 4 stringa u datoteku, pri ispisu mi ponavlja posljednji string. Zašto i kako to popravit? Citiraj:
|
|
![]() |
![]() |
![]() |
#5 | |||
Premium
Datum registracije: Mar 2004
Lokacija: Bjelovar/Zagreb
Postovi: 357
|
Prije nego ti odgovorim na pitanje zasto se ponavlja zadnji string, moram napisati par par primjedbica. Napisao si for (int i=1; i<=4; i++). S obzirom da se ovdje radi o C-u, a ne C++u, to nije ispravno. U C-u se varijable smiju deklarirati SAMO na pocetku bloka. Dakle, odmah ispod otvorene viticaste zagrade {. I nigdje vise. U tvom slucaju, tu varijablu i je trebalo deklarirati na pocetku maina, zajedno s onim stringovima. Vecina danasnjih kompajlera, uz C, moze probaviti i C++ koji podrzava ovakvu deklaraciju varijabli. No, to nije prema C standardu i mozes se naci u situaciji da ce neki kompajler baciti error na ovome. Nadalje, vidim da te muci operator '&'. Necu se sad upustati u neka predetaljna objasnjavanja jer ne znam koliko si uopce upoznat s tim operatorom. Ali, zato upamti ovo: nikada ga nemoj stavljati ispred varijable koja predstavlja polje. Npr. u svom programu imas polja dat i str. NIKADA neces pisat &dat ili &str. Recimo da zelis dobiti adresu petog clana nekog polja, onda je ispravno napisati &dat[4], ali samo &dat nikako. Opet, ni ovo nije nikakva fatalna greska. Nisam ni siguran sto tocno C standard kaze o tome. Stovise, dok napises dat i &dat, to u vecini slucajeva ima identicno znacenje. Ali ako ces nekada pristupati polju preko pokazivaca, onda moze doci do razlicitih interpretacija. No dobro, a sada objasnjenje zasto ti se zadnja rijec ispise dva puta. ![]() U datoteku zapisujes pomocu ovog komada koda: Citiraj:
Pogledajmo sada kako ispisujes datoteku: Citiraj:
Evo na kraju i program s ispravljenim greskicama koje sam spomenuo i ispisivanjem datoteke slozenim na drugaciji nacin. Nacina naravno ima jako puno. Citiraj:
Zadnje izmijenjeno od: munst0r. 03.04.2008. u 01:19. |
|||
![]() |
![]() |
![]() |
#6 |
Premium
Datum registracije: May 2007
Lokacija: Croatia
Postovi: 270
|
puno ti hvala! spasio si me! još sam početnik u C-u pa napišem ovako koji put pizdariju :-) |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
|
|