Új hozzászólás Aktív témák
-
Benmartin
senior tag
globális meg lokális deklaráció között a foglalás helyében van nagy különbség (előbbi RAM, utóbbi verem).
igazából nem tudok magyarázatot adni, hogy miért ment globálisan deklarált változónál (bár sejtem: valószínűleg %s-nél megpróbálta beleírni a '\0' karaktert a pointer végére és az egyik allokációnál sikerült a másiknál meg nem, talán ez lehet). mindenesetre a megoldás, amit mutattam nem túl szép, pontosan amiatt, hogy igazából nem szabadna char-ba %s-el olvasni, mert string beolvasásnál +1 karakter mindig kell a végére (emiatt lehet túlcsordulás).a scanf("%c %c")-vel az a probléma, hogy amikor beolvasol bármit az inputról, akkor jön vele mindig egy '\n' karakter az enter miatt és ezt nem tudod hol eltárolni, szóval bennemarad billpufferban, a következő beolvasásnál meg szépen előveszi a puffer tartalmat és beleteszi a változódba, viszont ha kiüríted ezt a puffert, akkor rendesen fog működni a beolvasás.
a szabványos inputra (stdin) kell meghívnod az fflush függvényt, szóval a while előtt, majd minden scanf("%c %c") olvasás után hajtsd végre a következő utasítást: fflush(stdin), ezáltal eltűnnek a pufferból az input végén "varakozó" soremelés karakterek.
remélem segítettem és érthető.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RX 7600 8GB Rampage SHIVA ADATA 600W
- Prémium PC házak akár 20-40% kedvezménnyel eladók garanciával, számlával! Upd. 01.18
- Akciós kisWorkstation! Dell Precision 3560 i7-1165G7 4.7GHz / 32GB / 512GB / Quadro T500 2GB FHD 15"
- Beszámítás! Acer Nitro 5 AN515-58-75F8 Gamer notebook - i7 12700H 16GB DDR4 512GB SSD RTX 3060 6GB
- Samsung Galaxy S24 Ultra 512GB Kártyafüggetlen 1év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

