- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- hcl: MS Office365 Linuxon
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- droidic: YouTube videók és playlistek letöltése GUI-alkalmazással
Új hozzászólás Aktív témák
-
Karma
félisten
Mivel a fordító számít, így legrosszabb esetben is csak kétféle viselkedést tapasztaltál volna (a CB-féle sajáttal meg a többi fordítóval). Elég egyértelmű így a stack overflow, amit a hatalmas struktúrával idézel elő.
Azért ha meg is kell védened ezt a házit, jobb lenne ha átállnál mallocolt struktúrákra...
-
Jester01
veterán
A scanf("%s") ugyanúgy nem ellenőrzi a hosszt, tehát túlcsordulás veszélyes.
Hogy a program miért nem működik azt már a #3603-ban leírtam. A scanf hagyja a pufferben a sorvéget ezért a rákövetkező fgets üres sort lát. A mostani kóddal ezért a település neve lesz üres.
Az ember azt hinné az adatbevitel egyszerű, de ez sajnos nem így van
Mivel mindenhol sorokat akarsz olvasni, mindenhol fgets kell és máris jó lesz. Persze igazából egy hibakezelős verzió kellene, ami észreveszi, ha több betűt ír be a lökött felhasználó.
Például valami ilyesmi jöhet szóba.
-
Karma
félisten
Azért nem kéri be a házszámot, mert a gets az stdin pufferben hagyja az újsor karaktert, amit az enterlenyomás otthagy - így a következő olvasás azt hozza be a felhasználóra várás helyett.
Azt egy külön getcharral el kell nyelned puszta kézzel.
Egyébként a település nevében is lehet ám szóköz.
-
e=mc²
őstag
Megprobaltam gets()-el, es igy modositottam a kodot:
struct cel_allomas Beker_Cel(){
struct cel_allomas l_cel;
char str[NEVHOSSZ];
printf("Telepules neve:\n");
scanf("%s", l_cel.telepules);
printf("Kozterulet neve:\n");
gets(str);
strcpy(l_cel.kozterulet, str);
printf("Hazszam:\n");
scanf("%s", l_cel.hazszam);
return l_cel;
}viszont miert kapok olyan hibat, hogy a hazszamot mar nem keri be, hanem atugorja?
-
Jester01
veterán
Ahogy mondod
Mivel a main a kapcsolat a futo és a futolepes között, így először futo-ból kellene visszaadni a main-be, majd onnan tovább. A helyzetet bonyolítja, hogy 2 értékről van szó. Egy lehetséges megoldás ha definiálsz egy struktúrát a két értéknek és azt adogatod, valahogy így:struct pozicio
{
int sor;
int oszlop;
};
struct pozicio futo(char tabla[TABLA_MERET][TABLA_MERET], char input[3])
{
struct pozicio p;
...
return p;
}
...
void futolepes(char tabla[TABLA_MERET][TABLA_MERET], struct pozicio p)
{
...
}
...
int main()
{
struct pozicio p;
...
p = futo(tabla, input);
gyalog(tabla, input);
futolepes(tabla, p);
...
}A naív megoldás persze a globális változók használata lenne, de az általában nem ajánlott.
Ú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!
- LG OLED G2 Eladó - 55 colos
- X1 Carbon 12th 14" FHD+ IPS Ultra 5 135U 16GB 512GB NVMe magyar vbill ujjlolv IR kam gar
- T14s Gen4 14" FHD+ IPS érintő Ryzen 5 PRO 7540U 16GB 256GB NVMe ujjlolv IR kam gar
- X1 Carbon 11th 14" FHD+ IPS i5-1345U 16GB 512GB NVMe ujjlolv IR kam gar
- Dell Latitude 5290, 12,5" HD, I5-8350U CPU, 8GB DDR4, 256GB SSD, WIN 11
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- Hp Prodesk 600 G3/ G5/ G6 SFF-MT / i5 8-9-10 gen, Hp EliteDesk 800 G4 / Win11- Számla, garancia
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Apple iPhone 15 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! ASUS B450 R7 2700X 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman i3 FSP 600W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest