- Karácsonyfa két keréken - OOTD SR1 teszt
- Huawei Watch 4 Pro - kívül-belül domborít
- Bemutatkozott a OnePlus Nord 6
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- Apple iPhone 17 - alap
- Új kamerát kap a Xiaomi 18 Pro és a Pro Max
- Huawei Watch Fit 3 - zöldalma
- Magyarországon is kapható a Moto G85 5G
- Google Pixel topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
Ú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!
- RAM Bazár!!! SK Hynix, Kingston, Samsung, Hyperx, minőségi DDR4-es RAM-ok kiárusítása!
- AKCIÓ! Felsőkategóriás Gamer PC-Számítógép! R7 9850X3D / RTX 5080 16GB / 32GB DDR5 / 2TB Nvme!
- Sapphire Radeon RX 470 4GB GDDR5 - Mining Edition wEdition
- ASUS Dual Radeon RX 580 OC Edition 8GB GDDR5
- ASUS Dual Radeon RX 6500 XT OC Edition 4GB GDDR6
- Honor 400 512GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus B250 i5 7500 16GB DDR4 120GB SSD 500GB HDD GTX 1060 6GB FSP CMT240 Chieftec 400W
- Lenovo X1 Carbon 13,3" - i5 7300U, 8GB RAM, SSD, jó akku - számla, 6 hó gar
- iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS4052, 94% Akkumulátor
- Akciós kisWorkstation! Dell Precision 3560 i7-1165G7 4.7GHz / 32GB / 512GB / Quadro T500 2GB FHD 15"
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

