Ú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 */
}Sk8erPeter
Ú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!
- Nvidia GPU-k jövője - amit tudni vélünk
- A fociról könnyedén, egy baráti társaságban
- Távol-keleti webshopok OFF topikja (játékok, kuponok, stb.)
- Politika
- Formula-1
- Bivalyerős lett a Poco F6 és F6 Pro
- Redmi Note 13 4G
- Google Pixel 6/7/8 topik
- Spyra: nagynyomású, akkus, automata vízipuska
- Musk átirányította a Teslának szánt AI-chipeket
- További aktív témák...
- Latitude 7420 14" FHD IPS i7-1185G7 16GB 256GB NVMe ujjlolv IR kam., gar
- FULL HD Carbon DELL Latitude 7400/7490(Touch) Core I7-8665U 8x4.8GHz 256/512Gb SSD WIN11 Gar Laptop
- FULL HD Lenovo Thinkpad T490/Touch Core I5/I7 256/512Gb M.2 SSD Nvidia MX 250 WIN11 Gar Laptop
- Dell Precision 7530,15.6",4K UHD,i9-8950H,64GB DDR4,512GB SSD,6GB VGA,WIN11
- Samsung Galaxy Watch 4 44mm, Bluetooth, 1 Év Garanciával
- Eladó fujitsu E500 gép! Eredeti windows + i3+8gb ram+500gb 100/100 HDD
- S24+ 2 hónapos, 256GB Fekete, teljesen karcmentes, 3 év gar. samsung vásárlás
- OnePlus 7T 8/128gb Frosted Silver újszerű
- Dual-Screen Előlapi kijelzőmodul és kiegészítők DJI Action 2-höz (kamera nélkül)
- Samsung Galaxy Buds 2 - Töltőtokot keresek!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs