- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Macrodroid
- Xiaomi 15T Pro - a téma nincs lezárva
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Apple iPhone 17e – mágnesek ereje
- Netfone
- Sony Xperia 1 V - kizárólag igényeseknek
- Bővül a One UI 8.5 béta, régebbi Galaxy készülékek is csatlakozhatnak
- Milyen hagyományos (nem okos-) telefont vegyek?
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
Ú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!
- Fejhallgatós találkozó
- Apple MacBook
- Házimozi belépő szinten
- Nagyon is lát fantáziát a Socket AM4-ben az ASRock
- Milyen videókártyát?
- PlayStation 5
- Xbox Series X|S
- Ami Kínában OnePlus Pad Pro, az errefelé mégis csak Pad 2 lett
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- EA Sports WRC '23
- További aktív témák...
- Dell Latitude 5330 /i5-1245u/16GB/256GB SSD/13.3" FHD laptop
- HP Omen 15 ( i7 6th, 8 GB, 240 SSD, 4GB Gef960) AkciÓÓ!
- Logitech MX Keys Mini for Mac - német - bontatlan
- 15.gen! Intel Core ULTRA 9 285K (24mag!) +32GB DDR5 kit +ASROCK Z890 PRO-A! GAR/SZÁMLA (Te nevedre)!
- ASUS TUF Gaming GeForce RTX 3080 10GB OC GDDR6X 320bit LHR dobozos, 1 tulajos, 2027.07.04-ig gari
- 5G Lenovo ThinkPad P14s Gen 3 Intel Core i7-1280P Nvidia T550 32GB 512GB 1 év teljeskörű garancia
- Asus Zephyrus G14 GAMING Notebook! R9-8945HS / RTX 4070 / 16GB DDR5 / 1TB! BeszámítOK
- Samsung Galaxy XCover 5 / 4/64GB / Kártyafüggetlen / 12Hó Garancia
- 27% - LG UltraGear 34GS95QE OLED Monitor! / 3440x1440 / 0.03ms / 240 Hz / FreeSync / G-Sync
- Új Creative Sound Blaster JAM V2
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



