- Vezetékes FEJhallgatók
- Kormányok / autós szimulátorok topikja
- Milyen TV-t vegyek?
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Nem akármilyen új GeForce jöhet idén
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
Ú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!
- Linux Mint
- Borderlands 4
- Okosóra és okoskiegészítő topik
- Horgász topik
- A világ aktív okostelefonjainak negyede iPhone, ötöde Galaxy
- Vezetékes FEJhallgatók
- Kormányok / autós szimulátorok topikja
- Ford topik
- exHWSW - Értünk mindenhez IS
- Végre hivatalos, mikor lesz az S26 hivatalos
- További aktív témák...
- Apple iPhone 16e 128 GB Black Garancia Beszámítás Házhozszállítás
- X1 Carbon 9th 14" FHD+ IPS i5-1135G7 16GB 256GB NVMe magyar vbill ujjolv IR kam gar
- Apple iPhone 13 128 GB Pink 1 év Garancia Beszámítás Házhozszállítás
- Akciós áron, Lenovo ThinkPad X13 Gen 2 - 16GB RAM, 512GB SSD, érintőkijelző, Yoga funkció
- Asus TUF Gaming A15 AMD Ryzen 7-7735HS/16GB RAM/512GB SSD/RTX4060VGA/15,6" 144Hz kijelző
- AKCIÓ! Apple iPad Pro 13 2024 M4 16GB/2TB WiFi tablet garanciával hibátlan működéssel
- Apple iPhone 14 Pro / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku: 100%
- Lenovo Legion 9 (16IRX9) - Intel Core i9-14900HX, RTX 4090
- BESZÁMÍTÁS! LENOVO ThinkPad P15 Gen 2 munkaállomás - i7 11800H 32GB DDR4 512GB SSD Quadro T1200 W11
- iPhone 15 Pro Max 256GB 88% (1év Garancia)
Á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



