Hirdetés
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Nő az eSIM-ek iránti igény
- Apple iPhone 16 Pro - rutinvizsga
- Google Pixel topik
- Felújított okostelefonokat kínál a Rejoy
- Huawei P20 Pro - profit csinál minden fotósból
- Nem lesz új Nothing zászlóshajó
- Samsung Galaxy S25 - végre van kicsi!
- iPhone topik
- Mobil flották
Új hozzászólás Aktív témák
-
válasz
sghc_toma
#543
üzenetére
Hali!
Elöször is bocsesz a "költői visszakérdezésért", de már előfordult, hogy valaki minden szakmai alapot nélkülöző hozzászólással gazdagított, amikor meg visszakérdeztem, hogy hát azért mégis elmagyarázhatná nekem(amúgy nem kellett volna) hogy hogyis van az, na azóta nem hallottam felőle.
Való igaz (ahogy Te illetve dabadab kolléga is írta) a GETS magában rejti ezt a fajta hibalehetőséget, de csak ezt, és ez jól látható(money[255]). Nyílván nem létezik olyan bankautomata amibe be lehet írni 255 számjegyből álló összeget, hogy adja ki 20ezresekbe, vagy ha igen szóljatok, mert kérek kölcsön egy MTZ traktort azt elhozzuk, mert akkor k... sok pénz van benne...
Azért nem szeretem a pl SCANF-t, mert az viszont rejtett "hibákat" tartalmaz és aki most ismerkedik a C-vel(lásd CELLPETI) azt nem tudhatja(mert sajnos a informatika vagy prográmozást oktató tanárbácsik is gyakran megfeletkeznek ennek elmagyarázásáról). Mire gondolok? Hát például Te is említést teszel ama bizonyos STDIN-ről ugyebár, amit a SCANF is "használ". Ha valaki tényleg korrekt INPUT-ot akar írni, annak erre oda kell figyelni. egy példával illusztrálom:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int n1,n2;
do {
printf("Enter 2 numbers [num1,num2]: ");
if (scanf("%d,%d",&n1,&n2)!=2) {
printf("Bad INPUT, try again or * to EXIT...\n");
continue;
}
printf("SUM(%d,%d) = %d\n",n1,n2,n1+n2);
} while (getch()!='*');
return 0;
}Nos, első ránézésre hibátlan, de mégsem. A következőképp működik az adott értékek mellett:
ha 5,7 akkor hibátlanul fut
ha 12345678901,12345678901, akkor hibás eredmény
ha a,b akkor hibás működés
ha 5.0,7.0 akkor hibás működésA hibás értékkel nem kell foglalkozni, az nyílvánvaló, azonban mi okozza a hibás működést? Nos annyit elárulok hogy a STDIN.
Természetesen nem Tőletek kérdem a megoldást(hisz biztosan tudjátok), hanem azoktól a leendő programozópalántáktól akik most ismerkednek a C-vel, és remélhetőleg elolvassák mások szakmai hozzászólását.
Szóval ezzel csak azt akartam illusztrálni, hogy kézenfekvő alap C input fx-ek is megtudják nehezíteni az ember életét, és ráadásul ezt úgy teszik hogy amúgy a kód hibátlan(vagy annak tűnik)Nos ezért szoktam kezdő programozóknál inkább a GETS-et alkalmazni.
Fire.
Ú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!
- Asztali PC , i5 12400F , RTX 3060 Ti , 16GB RAM , 512GB NVME , 500GB HDD
- Xiaomi Robot porszívó S40C, Bontatlanul, eladó!
- Főleg egyben eladó M.2 NVMe SSD-k (2230, 256GB / 512GB)
- BESZÁMÍTÁS! ASRock H510M i5 11400F 16GB DDR4 512GB SSD GTX 1660 Super 6GB Kolink Rocket Heavy 450W
- BESZÁMÍTÁS! Gigabyte Z790 I9 13900K 32GB DDR5 1TB SSD RTX 4080 Super 16GB Lian LI LANCOOL 207 750W
- Xeon E5 1650 v3, 2680 v3, 2690 v3 processzorok
- Bomba ár! Lenovo ThinkPad L480 - i5-8GEN I 8GB I 256SSD I 14" FHD Touch I HDMI I Cam I W11 I Gari!
- M2 // NVME // 64GB // 128GB// 256GB // 512GB //
- Apple iPhone 16 Pro Max / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku: 100%
- BESZÁMÍTÁS! MSI B650 R7 7800X3D 32GB DDR5 2TB SSD RTX 5070Ti 16GB Asus ROG Strix Helios GX601 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



