Hirdetés
- NvidiaRTX: Xiaomi Electric Scooter 6 Max: Az első rollerem
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Candy: AOOSTAR WTR PRO – NAS, alkoss, gyarapíts
- Gurulunk, WAZE?!
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
- Parci: Milyen mosógépet vegyek?
- gerner1
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
argc, argv:
Vegyük azt, hogy a main függvényednek így néz ki a fejléce:
int main(int argc, char *argv[])
{
/* blabla */
}Itt az argc azt határozza meg, hány paramétered van+1. Azért +1, mert ebben a számban benne van magának a futtatandó programodnak a neve is (pl. akarmi.exe a futtatandó fájlod; de NEM maga a programnév, mint string van benne, hanem csak plusz egy "paraméter").
Az argv pedig sztringre mutató mutatók tömbje, azért char * argv[] (ez ekvivalens ezzel: char **argv); ez megmondja, hány string szerepel a parancssorban. A 0. index maga a program neve (a korábban említett akarmi.exe), mint string, az 1. index (és az azt követő indexek) pedig az(ok), ami(ke)t a fájl neve mögé írtál: akarmi.exe parameter1 (parameter2 parameter3...)Eszerint ellenőrizgethetsz: pl. azt is csekkolhatod ilyen módon, hogy a program neve után pontosan annyi paramétert adtak-e meg, mint amennyit elvártál, és/vagy a paraméter(ek) neve megegyezik-e valamilyen értékkel, amitől függően hajtasz végre mondjuk egy műveletet, stb...
A Te esetedben ("min és max érték között kikeresi és listázza a primszámokat") pl. így hívod meg a programot a parancssorból:
akarmi.exe 10 50Még az elején include-old az stdlib-et, és akkor átalakíthatod a paraméterként kapott sztringet egész számmá az atoi függvénnyel:
#include <stdlib.h>Végezz egy ellenőrzést, hogy a paraméterek száma nem kisebb-e a szükségesnél (kell a min és a max is):
if(argc<3)
/* hibaüzenetek, kilépés hibával */;A korábban int-ként deklarált min és max változóknak pedig add át a megfelelő értékeket:
min = atoi(argv[1]);
max = atoi(argv[2]);Ezt követően pedig végezd el a prímtesztelést.
Összefoglalva (a konkrét kiegészítés már a Te dolgod):
#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{
int min, max;
if(argc<3)
/* hibaüzenetek, kilépés hibával */;
min = atoi(argv[1]);
max = atoi(argv[2]);
/* ide jöhet a prímtesztelés */
}
Ú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!
- Kettő együtt: Radeon RX 9070 és 9070 XT tesztje
- Apple MacBook
- Xiaomi 17 Ultra - jó az optikája
- Házimozi haladó szinten
- World of Tanks - MMO
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Milyen autót vegyek?
- Íme az új Android Auto!
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- PlayStation 5
- További aktív témák...
- Asus Tuf Gaming A16 ÚJ // Ryzen 7 // RTX 5070 // Számla // Garancia //
- Legion Slim 5 16ARP9 15.6" QHD+ IPS Ryzen 7 7435HS RTX 4060 16GB 512GB NVMe gar
- ASUS Zenbook 14 - 14" 2.8K OLED 90Hz - i5-1240P - 16GB - 512GB - Win11 - 1,5 év garancia - MAGYAR
- Gamer PC / i3-12100F / Asus Prime H620M-K / GeForce RTX 3050 8GB / 8GB DDR4 RAM
- SAPPHIRE RX 7800 XT 16GB GDDR6 NITRO+ - Új, 1 év garancia - Eladó!
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- Samsung Galaxy S22 / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- GAMER PC! i7-12700 / RTX 3080 Ti / 32GB 4133MHz / B760M / 1TB NVMe / 700w! BeszámítOK
- Dell Latitude 7280,12.5",FHD,i7-6600U,8GB DDR4, 128GB SSD,WIN11, 2 KAMERA
- Xbox Game Pass Ultimate előfizetések kedvező áron
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
