- Hogy is néznek ki a gépeink?
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Fejhallgató erősítő és DAC topik
- Melyik tápegységet vegyem?
- Apple MacBook
- Monitortrió a Samsungtól, köztük egy 500 Hz-es QD-OLED-del
- Kormányok / autós szimulátorok topikja
- Az Arctic (ismét) belép a házak piacára
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Philips LCD és LED TV-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!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Autós topik
- Hogy is néznek ki a gépeink?
- The Division 2 (PC, XO, PS4)
- Milyen légkondit a lakásba?
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Milyen okostelefont vegyek?
- Fejhallgató erősítő és DAC topik
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- ÚJ, BONTATLAN Samsung Galaxy S25 / S25+ / S25 Ultra - GYÁRTÓI garanciával
- Apple MacBook Air M2 (13,6", 8 GB RAM, 256 GB SSD)
- Dell 3520, 3530 eladó! Magas minőségben felújítva, 1 év garanciával, számlával
- új MacBook Pro 16 hüvelykes M1 Max 2TB SSD 64GB Apple space gray asztroszürke ajándék
- Nagyon szép állapot!! MacBook Air i5-5250U 4GB DDR3 125GB SSD 13 hüvelykes - 2015 eleje
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- HP EliteBook 840 G8 i5-1135G7 16GB 512GB 1 év garancia
- 137 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
- Samsung Galaxy S21 Ultra / 12GB RAM 256GB / Gyárifüggetlen / 12Hó Garancia
Állásajánlatok
Cég: FOTC
Város: Budapest