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-19:22 #2125036
hali!
koszi a valaszokat… meg tudom hatarozni egy pointer erteket? Marmint szeretnem, ha a pointer a 134521821 -ra mutatna.
A file 134521200 – nal kezdodik es egeszen 134521200+filesizeig tart. Nah most a legegszerubben szerintem ugy tudom vizsgalni egy pointert megelozo, vagy utana levo karaktert, ha letrehozok egy masik pointert, ami arra a memoriateruletre mutat. szted ez nagy hulyeseg?
Pl:
def = strstr(buff, „defaulttt0”);
for(i=0; i<15; i++){
printf(„%dn”, (int)def);
}
ez a kov. 15 karakter ASCII kodjat adja ki. utana, h az most mi, mar egyszeru lesz kezelni.2007-07-28-19:22 #2125037hali!
koszi a valaszokat… meg tudom hatarozni egy pointer erteket? Marmint szeretnem, ha a pointer a 134521821 -ra mutatna.
A file 134521200 – nal kezdodik es egeszen 134521200+filesizeig tart. Nah most a legegszerubben szerintem ugy tudom vizsgalni egy pointert megelozo, vagy utana levo karaktert, ha letrehozok egy masik pointert, ami arra a memoriateruletre mutat. szted ez nagy hulyeseg?
Pl:
def = strstr(buff, „defaulttt0”);
for(i=0; i<15; i++){
printf(„%dn”, (int)def);
}
ez a kov. 15 karakter ASCII kodjat adja ki. utana, h az most mi, mar egyszeru lesz kezelni.2007-07-28-20:08 #2125038Nem értem teljesen, hogy miről beszélsz, de a keresést valahogy így érdemes csinálni:
Code:int i = 0;
substr [ 0 ] = buf;
do {
substr [ i ] = strstr ( substr [ i ] , needl );
i ++;
substr [ i ] += strlen ( needl );
} while ( substr [ i – 1 ] != NULL );Code:int i = 0;
buf2 = buf;
do {
substr [ i ] = strstr ( buf2 , needl );
i ++;
buf2 += strlen ( needl );
} while ( substr [ i – 1 ] != NULL );Na, ha minden igaz ez után substr (mutató tömb) tartalmazni fogja az összes needl (karakterlánc) előfordulási helyét egy ”-val lezárva. (Mintha egy karakterlánc lenne… csak itt az adatok 32 bitesek lesznek, nem 8 bitesek…)
2007-07-28-20:08 #2125039Nem értem teljesen, hogy miről beszélsz, de a keresést valahogy így érdemes csinálni:
Code:int i = 0;
substr [ 0 ] = buf;
do {
substr [ i ] = strstr ( substr [ i ] , needl );
i ++;
substr [ i ] += strlen ( needl );
} while ( substr [ i – 1 ] != NULL );Code:int i = 0;
buf2 = buf;
do {
substr [ i ] = strstr ( buf2 , needl );
i ++;
buf2 += strlen ( needl );
} while ( substr [ i – 1 ] != NULL );Na, ha minden igaz ez után substr (mutató tömb) tartalmazni fogja az összes needl (karakterlánc) előfordulási helyét egy ”-val lezárva. (Mintha egy karakterlánc lenne… csak itt az adatok 32 bitesek lesznek, nem 8 bitesek…)
2007-07-28-21:54 #2125040ez megoldotta a bajom. (^_^)
2007-07-28-21:54 #2125041ez megoldotta a bajom. (^_^)
2009-12-04-20:01 #1886820Hali!
Megyűlt a bajom egy file beolvasásával, majd tartalmának kiiratásával. Itt a kód:
Code:#include
#includeint main(int argc, char *argv[])
{
FILE *fp;
fp = fopen(„/boot/grub/menu.lst”, „r”);
char *line;
line = malloc(128);
int i;
if(fp == NULL)
{
printf(„Could not open the file!n”);
}else
{
printf(„File opened for input”);
while(!feof(fp))
{
fgets(line, 128, fp);
for(i = 0; i < 128; i++ ) printf("%c", line[i]); } } fclose(fp); return 0; }Ha nem így akkor hogyan oldjam meg a dolgot? Se warning, se error nincsen és még valamit ki is ír, de az osszevisszaság:
Other operating systems:
arate the menu items below from the Debian
112bc04cd ro single
lashot
Other operating systems:
arate the menu items below from the Debian
112bc04cd ro single
lashot
Other operating systems:
arate the menu items below from the Debian
112bc04cd ro single
lash
# This entry automatically added by the Debian installer for a non-linux OS
112bc04cd ro single
lash
# on /dev/hda3
omatically added by the Debian installer for a non-linux OS
112bc04cd ro singlemeg ilyenek.
Az előző alkalommal, csak egy char tömbböt használtam, ami 128bytos volt. Beolvastam a dolgokat és akkor még szarabb volt a dolog, mert a szemét a memóriában is kijött. A malloc legalább azt megoldja.Dani
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz