Forum » Programiranje » [C] Kazalec tipa char na podatke iz datoteke
[C] Kazalec tipa char na podatke iz datoteke
purki ::
Imam funkcijo
Ta funkcija pošlje int znakov od mesta kamor kaže char.
Odprl sem neko datoteko in hočem da bi kazalec char kazal na nek znak v tej datoteki.
Upam da razumete ;)
void Send(char *, int);
Ta funkcija pošlje int znakov od mesta kamor kaže char.
Odprl sem neko datoteko in hočem da bi kazalec char kazal na nek znak v tej datoteki.
Upam da razumete ;)
purki ::
Funkcija Send sprejme kot parameter kazalec na tip Chair. Jaz sem odprl datoteko s fOpen.
pFile = fopen (szFile,"rb");
Če hočem poslati 200 znakov iz datoteke kličem funkcijo tako
SendData(pFile, 200);
a dobim warning:
warning C4133: 'function' : incompatible types - from 'struct _iobuf *' to 'char *'
Treba je pač definirat nek kazalec tipa char na nek znak v tej datoteki. Jaz teh kazalcev ne razumem čist dobro zato pa sprašujem vas
pFile = fopen (szFile,"rb");
Če hočem poslati 200 znakov iz datoteke kličem funkcijo tako
SendData(pFile, 200);
a dobim warning:
warning C4133: 'function' : incompatible types - from 'struct _iobuf *' to 'char *'
Treba je pač definirat nek kazalec tipa char na nek znak v tej datoteki. Jaz teh kazalcev ne razumem čist dobro zato pa sprašujem vas
Matako ::
Kazalci kažejo na lokacije v (virtualnem) pomnilniku, ne datotekah. Obstaja sicer POSIX funkcija mmap(), kjer lahko datoteko preslikaš v pomnilnik... samo to ni to kar hočeš.
Kar ti iščeš je fseek() - ta funkcija definirana v stdio.h postavi pozicijo naslednje bralno pisalne operacije na neko določeno mesto v datoteki, če je možno.
Kar ti iščeš je fseek() - ta funkcija definirana v stdio.h postavi pozicijo naslednje bralno pisalne operacije na neko določeno mesto v datoteki, če je možno.
/\/\.K.
Zgodovina sprememb…
- spremenil: Matako ()
Vesoljc ::
jah ne gre to kr tko...
tukaj imas pac dva kazalca na povsem razlicna tipa. ti moras najprej prebrat kos ali celo vsebino datoteke v pomnilnik, nato pa kazalec, ki kaze na ta tvoj pomnilnik, podas funkciji.
za branje lahko uporabis fread
tukaj imas pac dva kazalca na povsem razlicna tipa. ti moras najprej prebrat kos ali celo vsebino datoteke v pomnilnik, nato pa kazalec, ki kaze na ta tvoj pomnilnik, podas funkciji.
za branje lahko uporabis fread
Abnormal behavior of abnormal brain makes me normal...
Zgodovina sprememb…
- spremenil: Vesoljc ()
purki ::
A bi lahko en example, si lažje predstvljam
Se opravičujem, example je v povezavi ki si mi jo dal
TNX
Se opravičujem, example je v povezavi ki si mi jo dal
TNX
Zgodovina sprememb…
- spremenilo: purki ()
Matako ::
Aja narobe sem razumel. Prehitro prebral.
Recimo, da hočeš prebrati maxsize znakov iz datoteke foo.bar, primer
..
FILE f* = fopen("foo.bar", "r");
if (f) {
char *buf = malloc(maxsize, sizeof(char));
if (fread(buf, 1, maxsize, f) != maxsize)
problem("napaka (prebrano premalo znakov)");
else
naredinekaj(buf);
fclose(f);
free(buf);
}
...
No moj prešnji nasvet s fseek() je še vedno na mestu - mogoče pa ne želiš brati od začetka ...
Recimo, da hočeš prebrati maxsize znakov iz datoteke foo.bar, primer
..
FILE f* = fopen("foo.bar", "r");
if (f) {
char *buf = malloc(maxsize, sizeof(char));
if (fread(buf, 1, maxsize, f) != maxsize)
problem("napaka (prebrano premalo znakov)");
else
naredinekaj(buf);
fclose(f);
free(buf);
}
...
No moj prešnji nasvet s fseek() je še vedno na mestu - mogoče pa ne želiš brati od začetka ...
/\/\.K.
Zgodovina sprememb…
- spremenil: Matako ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | NetBeans - C - branje iz datotekeOddelek: Programiranje | 978 (915) | nightrage |
» | C strukture, kazalci naloga pomocOddelek: Programiranje | 1464 (1359) | DavidJ |
» | [C/C++] pointerji in referenceOddelek: Programiranje | 2020 (1844) | Matako |
» | [NALOGA][NASM] problem pri povezovanju s C-jevskimi funkcijamiOddelek: Programiranje | 1379 (1237) | c00L3r |
» | c++ datotekeOddelek: Programiranje | 4044 (3533) | Vesoljc |