Új hozzászólás Aktív témák
-
nyunyu
félisten
Bontsuk kette a problemat.
Mint rajottem, az ftell/fgetpos csak akkor mukodik "helyesen", ha mar olvastam a streambol.
Ha elso olvasas elott adom ki, akkor -20-at ad vissza, es innentol fogja egyesevel novelni/csokkenteni a poziciot minden getc/ungetc utan, nem nullatol.
Ez a kisebbik problema.Nagyobbik bajom az, hogy a getc platform fuggoen kezeli a sorvege karaktereket.
Pl. Visual C++ 2010 Win alatt ha \n karaktert lat, akkor lenyeli az utana jovo \r karaktert es mindig kettovel noveli a fajl poziciot.
Ez azert problema, mert a feldolgozando forraskodok egy resze UNIX alatt lett mentve, ott meg nincsen \r az \n utan, de akkor is kettovel noveli a poziciot...Plusz nehezitesnek vannak olyan forraskodok is, amiben nincs \n, hanem \r-rel vannak tordelve.
Probaltam szamolni, hany getc/ungetc-nel jarunk, de az sem ad pontos eredmenyt, mivel nem tudom eldonteni, hogy a latott \n karakternel eggyel vagy kettovel noveljem az indexet.
Windows alatt automatikusan utana rakott \r egyaltalan nem jon at a getc-vel, nem tudom megszamolni. -
nyunyu
félisten
Hogyan lehet _megbizhatoan_ lekerdezni, hanyadik karakternel tartunk az eppen feldolgozott fajlban, majd a lementett poziciora visszaugrani?
ftell neha negativ erteket ad vissza, majd a kovetkezo karakter olvasasa utan az elozo rossz ertek+1-et, aztan fseek(fp, pos, SEEK_SET)-re total mashova ugrik, nem a "megjelolt" karakterhez.
fgetpos paros is ugyanazokat az ertekeket adja vissza, mint az ftell.
Ha manualisan szamolom a karaktereket minden getc/ungetc-nel, akkor sem pont oda ugrik vissza.
Probaltam Win alatt VC++ 2010-zel, meg linux alatt GCC-vel, mindegyik produkalja.
Feldolgozando fajl szoveget tartalmaz, mind win, mind linux stilusu sortores is elofordulhat benne. -
nyunyu
félisten
Viszont elojott az a kerdes, hogyan lehet beallitani, hogy milyen fajlt toljon be a fordito az stdin-re?
Linux/UNIX alatt "cat fajlnev | program"-mal kell futtatni.Meg jo, hogy DOS/Windows parancssor is POSIX kompatibilis, igy mukodik az input/output atiranyitasra szolgalo <,>
Igy a programot igy kell futtatni:
program <fajlnevAzt meg be lehet allitani a VSben, hogy milyen parancssori parameterekkel debugolja a programot. (Configuration properties/Debugging/Command Arguments)
-
nyunyu
félisten
Sikerult megetetni Visual Studio 2010-zel, be kellett allitani a projekt tulajdonsagainal Configuration properties/C/C++/Preprocessor alatt a Preprocessor definitions-ben, hogy "_CRT_SECURE_NO_WARNINGS"
Igy mar nem ugat az strcpy es tsai fuggvenyek elavultsagara, hanem lefordul.Viszont elojott az a kerdes, hogyan lehet beallitani, hogy milyen fajlt toljon be a fordito az stdin-re?
Linux/UNIX alatt "cat fajlnev | program"-mal kell futtatni.Meg kene maradnia platformfuggetlennek a kodnak, igy nem szivesen irnam at a fajlkezeles reszet.
-
nyunyu
félisten
Adott egy standard C kod, ami eredetileg UNIX alatt lett fejlesztve, mezei parancssoros program.
Meg lehet ezt a kodot etetni valami modern windowsos fejlesztokornyezettel, hogy lepesrol lepesre tudjam debugolni, nezni hogyan alakulnak a belso valtozok aktualis ertekei?
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Lakáshitel, lakásvásárlás
- Garmin Instinct – küldetés teljesítve
- Házimozi haladó szinten
- Kompakt vízhűtés
- CPU léghűtés kibeszélő
- Kerékpárosok, bringások ide!
- Projektor topic
- Vélemény: nem úgy tűnik, de Lip-Bu Tan most menti meg az Intelt
- Milyen notebookot vegyek?
- Információbiztonság, kiberbiztonság, adatvédelem
- További aktív témák...
- Dell Latitude 5450 Intel Core Ultra 5 135U 4nm 32GB DDR5 érintőképernyős laptop Dell gari 2027.09.hó
- PlayStation 4/5 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- PlayStation 5/4 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX ONE/Series kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX Series S 512GB, 6 hó garanciával Bp-i üzletből eladó!
- Prémium PC házak akár 20-40% kedvezménnyel eladók garanciával, számlával!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Samsung Galaxy A14 64GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Dell Precision M6600 i7-2720QM I 8GB I 500SSHD I 17,3" FHD I Quadro I Cam I W10 I Gari!
- Bomba ár! HP Elitebook Folio 9470M - i5-3GEN I 8GB I 256GB SSD I 14" I DP I Cam I W10 I Garancia!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged