نهخشهی main
نهخشهی main ههروهك له یهكهم بهرنامهی ڕاهێنانهكهمانهوه ئاشنای بووین، به نهخشهی سهرهكی بهرنامه دادهنرێت و، خاڵی سهرهتای جێبهجێ كردنی بهرنامهكهیه.
له نموونهكانی پێشوودا شێوازی جیاجیامان بهكارهێنا بۆ پێناس كردنی نهخشهی main، پێناسی دانراو له لایهن ANSI برێتییه له:
int main(void)
int main(int argc, char* argv[])
زۆر له وهرگێڕهكانیش ڕێگه دهدهن كه ئاكامی نهخشهكه void بێت:
void main(void)
void main(int argc, char* argv[])
بوونی ڕاگهیێن له ڕوونكردنهوهی نهخشهی main دا، واتای ئهوه دهگهیهنێت كه بهرنامهكه ڕاگهیێن وهردهگرێت، ئهگهرچی مهرج نییه كار بۆ ئهم ڕاگهیێنانه له بهرنامهكهدا كرا بێت و بهكاربێت.
ئهوانهی كه بهرنامهی ویندۆز دادهڕێژن دهبێت ئاگاداری ئهوهبن كه ناوی نهخشهی main به WinMain ناودهبرێت له داڕشتنی بهرنامهكانیاندا. ههروهها بهگوێرهی جۆری وهرگێڕ و كتێبخانهكهی ناوی WinMain یش گۆڕانكاریی بهسهردا دێت، بۆ نموونه دهبێت به OwlMain له بۆرلاند Borland دا، یاخود ناوی پۆلێك class ێك ههڵدهگرێت له MFC دا (CWinApp له Visual c++).
نهخشهی main بهبێ پێدانی بهڵگه argument
بهرنامهیهك كه هیچ بهڵگهیهك وهرنهگرێت و كاری لهگهڵدا نهكات به یهكێ لهم دوو شێوهیه پێناسی نهخشهی main ـی تیا كراوه:
void main(void)
int main(void)
ڕاگهیێنی داوانامه Application parameter
ههندێ جار وا پێویست دهكات هاوكات لهگهڵ جێبهجێ كردنی بهرنامهدا زانیاریی بدرێت، ئهمهش بهشێوهیهكی گشتی لهگهڵ ناوی بهرنامهكهدا وهك بهڵگه argument ناو ببرێت.
وهك چۆن له كاتی بهكاربردنی بهرنامهی format ( فرمانێكه له سیستهمهكه)، ناوی لێخوڕهكه دهدهین تاكو لێوهی كرداری شێوهپێدان format دهست بهكاربێت، به پێنهدانی ناوی لێخوڕ بهرنامهكه كار ناكات، چونكوو چاوهڕوانی ناوێك دهكات..
له وێنهكهدا دهردهكهوێت، له باری یهكهمدا كاردانهوهی بهرنامهكه برێتی دهبێت له پێدانی ههڵهیهك و، داوای ڕاگهیێنێك parameter دهكات. لهباری دووهمیشدا دهست دهكات بهجێبهجێ كردنی ئهركهكهی.
بهههمان شێوه ئێمهش دهتوانین له بهرنامهكانماندا كه به c++ دایدهڕێژین، كار بۆ وهرگرتنی ڕاگهیێن بكهین و بایهخی خۆی پێبدهین.گهیاندنی ئهم زانیارییهش له ڕێی نهخشهی main ـهوه دهبێت وهك لهسهرهوه باسی لێوهكرا.
int main(int argc, char* argv[])
دوو ڕاگهیێنی تایبهت argc, argv
argv |
بهشێوهی نیشاندهرێك لهسهر ڕیزێك زنجیره نووسه پێناس كراوه، ههر دانهیهك لهم ڕیزه هێما بۆ بهڵگهیهكی دراو دهكات. ههر بهڵگهیهكیش وهك زنجیره نووسه string كاری لهگهڵ دهكرێت.
بێگومان گهر ژماره درابوو، پێویست دهكات له ناو بهرنامهكهدا زنجیره نووسهكه بگۆڕدرێت به ژماره، تاكوو كاری دیاریكراوی لهگهڵدا ئهنجام بدرێت |
argc |
ژمارهی ئهو بهڵگانهیه كه لهگهڵ ناوی بهرنامهكهدا هاتووه، وهك ژمارهیهكی تهواو int پێناس دهكرێت.
لانی كهم نرخهكهی یهكسانه به یهك، چونكوو ناوی بهرنامهكهش دهژمێرێت و، جێی یهكهم بهڵگه وهردهگرێت |
گهر نموونهی format كه لهسهرهوه باسكرا وهربگرین، ئهوا
format a:
argv[0] = format
argv[1] = a:
argc = 2
|
نموونهیهكی كرداری وهردهگرین له بهرنامهیهكدا :
#include <iostream.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if(argc < 2) {
cout << "tkaye nawi xot bnuse" <<
endl;
exit(1);
}
cout << "roj bash" <<
argv[1] << endl;
return 0;
}
به وهرگێڕانی بهرنامهكه داوانامهكه دروست دهبێت، وای دابنێ ناوی بهرنامهكه rojbash بێت، گهر جێبهجێی بكهین، بهم شێوهیه وهڵامی دهبێت:
گهر تهنها ناوی بهرنامهكه درا به تهنها، ئهوا ژمارهی بهڵگهكان له 2 كهمتر دهبێت و، به هۆی بهراورد كردنهكهوه و به ڕستهیهكی ئاگاداری كۆتایی به بهرنامهكه دێت:
if(argc < 2) {
cout << "tkaye nawi xot bnuse" << endl;
exit(1);
}
لێرهدا :
argv[0] = "D:
ojbash>rojbash.exe"
argv[1] = "Aras"
argc = 2
بۆ جیا كردنهوهی بهڵگهكان له یهكتر "بۆشایی" دهخهینه نێوانیانهوه. فارزه یان خاڵ و فارزه ؛ نابێت!. بۆ نموونه
rojbash aras, aso naderi
وهك چوار بهڵگه كاری لهگهڵدا دهكرێت
argv[0] = "rojbash.exe"
argv[1] = "aras,"
argv[2] = "aso"
argv[3] = "naderi"
ههروهها
rojbash aras,aso,ali
وهك دوو بهڵگه جیا دهكرێتهوه
argv[0] = "rojbash.exe"
argv[1] = "aras,aso,ali"
پێویسته تهماشای تایپهتمهندییهكانی سیستهمهكه بكرێت كه ئهم كارهی لهسهر دهكرێت، چونكه ههندێ سیستهم ههیه "؛" دادهنێت به هێمای جیاكهرهوه و ڕێگه دهدات بۆشایی ههبێت له نێوان بهڵگهكاندا:
rojbash azad ali; Sabir
argv[0] = "rojbash.exe"
argv[1] = "azad ali"
argv[2] = "Sabir"
سهرنج:
argc = argument count
argv = argument vector
ئهم دوو ناوه، وهك باوی لێهاتووه، دهتوانیت ناوی تریان لێبنێت وهك خۆت پێتخۆشه. ههروهها تهماشای ووردهكاریی و وهگهڕخستنی وهرگێڕهكهش بكه كه بهكاری دههێنیت، ههندێ وهرگێڕ ههیه ڕێگه دهدات زیاتر لهم دووانه وهك ڕاگهیێن بۆ نهخشهی main ڕوونبكرێتهوه:
int main( int argc[ , char *argv[
] [, char *envp[ ] ] ] );
تكایه تهماشای MSDN بكه.
بێگومان دهشێ وهرگێرهكه پشتگیری لهم جۆره پێناسانه نهكات بۆ نهخشهی main، ئهو كات به وشهی تایبهتی voidڕووندهكرێتهوه.
ئێستا دهگهڕێینهوه لای نموونهكهی خۆمان، بهراورد كردنی دوو ژماره، وای دابنێ دهمانهوێت دوو ژمارهكه لهگهڵ بهرنامهكهدا وهك بهڵگه ناو دهبرێت:
ناوی بهرنامهكه: berawrd.exe
berawrd 2 6
لێرهدا پێویسته دوو ژمارهكه (٢،٦) بدهین به دوو گۆڕاوهكه:
n1 = atoi(argv[1]);
n2 = atoi(argv[2]);
وهك باسكرا argv[0] ناوی بهرنامهكه ههڵدهگرێت. نهخشهی atoi ههڵدهستێت به گۆڕینی زنجیره نووسه بۆ ژمارهیهكی تهواو، چونكه n1, n2 وهك ژمارهی تهواو پێناس كراون.
atoi له پهڕگهی stdlib.h ڕوونكراوهتهوه، له بابهتێكی تردا به درێژی باسی دهكهین.
بهرنامهكهمان بهم شێوهیهی لێدێت :
#include <iostream.h>
#include "functions.h"
int main(int argc, char *argv[])
{
int n1, n2 ;
if(argc <3){
cout << "tkaye 2 jimare bde" << endl;
exit(1);
}
n1 = atoi(argv[1]);
n2 = atoi(argv[2]);
cout << "jimarey yekem: " << n1 << endl;
cout << "jimarey duhem: " << n2 << endl;
Berawrd(n1,n2);
return 0;
}
شێوازی جێبهجێ كردنهكهی لهم وێنهیهی خوارهوهدا دهردهكهوێت:

ئهم بابهته درێژهی ههیه
ههموو
لاپهڕهكانی
ئهم بابهته:
1
- 2
- 3
- 4
- 5
- 6
|