Kezdőlap › Fórumok › Programozás › Egyszerű C file i/o
- This topic has 26 hozzászólás, 3 résztvevő, and was last updated 17 years, 11 months telt el by
vargadanis.
-
SzerzőBejegyzés
-
2007-07-28-17:54 #2125026
„Ha az egész file-t beolvasom, akkor utána még tudok benn majd valahogyan kavarni? Marmint keresés meg ilyesmik.”
Hát szerintem jobban jársz… „#”, „”… dolgokat úgysem fogja a gets lekezelni. Ráadásul gyorsabb a memóriában kezelni a dolgokat, mint karakterenként olvasgatni… noha ennél a rövid kis file-nál nem lesz fetűnő. 🙂„Amugy azert irta ki olyan hulyen a dolgot, mert szemét volt a memóban.”
callocHa szimplán keresni akarsz, akkor ott a cat, grep, sed… nem kell c kód sem.
2007-07-28-17:54 #2125027„Ha az egész file-t beolvasom, akkor utána még tudok benn majd valahogyan kavarni? Marmint keresés meg ilyesmik.”
Hát szerintem jobban jársz… „#”, „”… dolgokat úgysem fogja a gets lekezelni. Ráadásul gyorsabb a memóriában kezelni a dolgokat, mint karakterenként olvasgatni… noha ennél a rövid kis file-nál nem lesz fetűnő. 🙂„Amugy azert irta ki olyan hulyen a dolgot, mert szemét volt a memóban.”
callocHa szimplán keresni akarsz, akkor ott a cat, grep, sed… nem kell c kód sem.
2007-07-28-18:09 #2125028Tudom, hogy vannak könnyebb megoldások is, mint amit én válaszottam. Ez a kis program egy másik program alapja lesz és a cél, hogy C-vel megismerkedjek egy kicsit. Amúgy itt van a te megoldásod is:
Code:#include
#includeint main(int argc, char *argv[])
{
FILE *fp;
fp = fopen(„/boot/grub/menu.lst”, „r”);
int size, i;
fseek(fp, 0, SEEK_END);
size = ftell(fp);
char *buff;
buff = malloc(size);
fseek(fp, 0, SEEK_SET);
fread(buff, size, 1, fp);
for(i=0; i<size; i++)
{
printf("%c", buff[i]);
}
fclose(fp);
return 0;
}Most írtam és még működik is. 🙂
2007-07-28-18:09 #2125029Tudom, hogy vannak könnyebb megoldások is, mint amit én válaszottam. Ez a kis program egy másik program alapja lesz és a cél, hogy C-vel megismerkedjek egy kicsit. Amúgy itt van a te megoldásod is:
Code:#include
#includeint main(int argc, char *argv[])
{
FILE *fp;
fp = fopen(„/boot/grub/menu.lst”, „r”);
int size, i;
fseek(fp, 0, SEEK_END);
size = ftell(fp);
char *buff;
buff = malloc(size);
fseek(fp, 0, SEEK_SET);
fread(buff, size, 1, fp);
for(i=0; i<size; i++)
{
printf("%c", buff[i]);
}
fclose(fp);
return 0;
}Most írtam és még működik is. 🙂
2007-07-28-18:27 #2125030Ha nincs ” a file-ban, akkor a buf=calloc(size+1,1), buf[size]=”, printf(buf)/puts(buf) is megy…
2007-07-28-18:27 #2125031Ha nincs ” a file-ban, akkor a buf=calloc(size+1,1), buf[size]=”, printf(buf)/puts(buf) is megy…
2007-07-28-18:40 #2125032igen… jatszottam a printf(„%s”, buf)-al es ment. A puts viszont beletett egy sortotrest mindenhova, ami nem tetszett.
Van meg egy kinom bajom…
strstr-t hasznaltam, hogy egy szora rakeressek. Ez egy pointert ad vissza. Az elso megtalalastol az egesz file veget kiirja. hogyan tudom meghatarozni, hogy a fileban hol talalta ezt a reszletet es hogyan tudok egy meghatarozott hosszu charlancot, vagy stringet kiiratni?
Bocsi.. nincs ekezet.. raunam a valtogatasra.2007-07-28-18:40 #2125033igen… jatszottam a printf(„%s”, buf)-al es ment. A puts viszont beletett egy sortotrest mindenhova, ami nem tetszett.
Van meg egy kinom bajom…
strstr-t hasznaltam, hogy egy szora rakeressek. Ez egy pointert ad vissza. Az elso megtalalastol az egesz file veget kiirja. hogyan tudom meghatarozni, hogy a fileban hol talalta ezt a reszletet es hogyan tudok egy meghatarozott hosszu charlancot, vagy stringet kiiratni?
Bocsi.. nincs ekezet.. raunam a valtogatasra.2007-07-28-18:49 #2125034„hol talalta ezt a reszletet”
Ha a megkapott pointer+n-t (n>0) írsz be, akkor már a következőt adja meg„es hogyan tudok egy meghatarozott hosszu charlancot”
pl strndup (vagy saját magad adod meg, hogy mi a vége… ha az pl. függ a karakterlánctól)2007-07-28-18:49 #2125035„hol talalta ezt a reszletet”
Ha a megkapott pointer+n-t (n>0) írsz be, akkor már a következőt adja meg„es hogyan tudok egy meghatarozott hosszu charlancot”
pl strndup (vagy saját magad adod meg, hogy mi a vége… ha az pl. függ a karakterlánctól) -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz