Njengongcweti wemfashini nezinhlelo, ngiyabazisa ubuhle bayo yomibili imihlaba, ngisho noma kuza ekukhiqizeni i-char engahleliwe. Emhlabeni we-C++, lo msebenzi ungafaniswa nokwenza isitayela ingubo ephelele: udinga ukuqonda izimiso, ubuhlakani, kanye nedeshi yokungahleliwe ukuze ukwenze kujabulise.
Namuhla, sizothatha uhambo olujabulisayo futhi sijule ekutheni ungawenza kanjani umsebenzi wokukhiqiza umlingiswa ongahleliwe ku-C++. Njengokuluka ingubo enhle, sizobe sisebenzisa amathuluzi namasu afanele ukwenza uhlelo olusebenza kahle futhi olusebenzayo.
Imitapo yolwazi ehilelekile
Umsebenzi obaluleke kakhulu wokukhiqiza izinombolo ezingahleliwe ugcinwe emtatsheni wezincwadi owaziwa ngokuthi cstdlib. Kufana nendwangu eyinhloko esiyisebenzisayo ukwakha ubuciko bemfashini. Lo mtapo wolwazi unomsebenzi oqanjwe ngokuthi irand().
#hlanganisa
Lo msebenzi, uma ubizwa, ubuyisela inombolo ephakathi kuka-0 no-RAND_MAX, okungaguquki ku-cstdlib okuvamise ukumela inani eliphezulu. Ngendlela efanayo imibala egqamile enganikeza ngayo impilo kucezu lwemfashini, ukungahleliwe kwengeza isici sokungabikezeli kukhodi yethu, iyenze ibe namandla futhi iguquguquke.
Ukukhiqiza Uhlamvu Olungahleliwe
Ngendlela efanayo umklami wemfashini ocophelelayo uhlanganisa izici ezihlukahlukene ukuze akhe ukubukeka okumangalisayo, manje sizohlanganisa amathuluzi ethu ukuze sixazulule umsebenzi esiwenzayo - ukukhiqiza umlingiswa ongahleliwe. Lokhu kuhilela ukwenza imephu isethi yamanani aphelele abuyiswe umsebenzi werandi() kumavelu we-ASCII ahambisana nezinhlamvu eziphrintekayo.
#hlanganisa
#hlanganisa
#hlanganisa
char generate_random_char() {
i-srand(isikhathi(0));
int randomInt = irandi() % 128;
ngenkathi(okungahleliweInt <33) { randomInt = irandi()% 128; } buyisela i-static_cast
}
int main () {
std::cout << generate_random_char(); buyisela 0; } [/code] Emfashinini, isikhathi siyikho konke, futhi emhlabeni wethu, akuhlukile. Umsebenzi wesikhathi(0) ovela kulabhulali ye-ctime usisiza ukuthi sithole umsebenzi wethu werandi() ngokusekelwe esikhathini samanje, okuholela kujeneretha elihle kakhulu lokungahleliwe. Njengengubo engaphelelwa isikhathi ehlala isikhathi eside, kanjalo nesixazululo sethu.
Ukwehlukanisa Ikhodi
Umsebenzi werandi() ubuyisela inombolo engahleliwe. Njengoba kushiwo ngaphambili, lokhu kungafaniswa nokucosha indwangu engahleliwe ebhokisini lemfashini. Kodwa akuzona zonke izinto ezilungele umklamo wethu; yingakho isidingo sokuqinisekisa ikhwalithi yazo noma, kulokhu, ububanzi.
Silinganisa inombolo engahleliwe ngo-128 ukuze siqinisekise ukuthi ingaphakathi kwebanga lezinhlamvu ze-ASCII eziphrintekayo, eziqala ku-0 kuye ku-127. Nokho, ukuze kuqedwe izinhlamvu ezingaphrinteki, sethula iluphu yesikhashana eqhubeka ikhiqiza izinombolo ezingahleliwe size sithole inombolo engahleliwe engu-33 noma ngaphezulu, ehambisana nohlamvu lokuqala oluphrintekayo lwe-ASCII – '!' (isibabazo).
Ekugcineni, siguqula (sakaza) i-int yethu ibe yi-char. Umphumela uwuhlamvu oluphrintekayo olungahleliwe. Ucingo ngalunye oluya kumsebenzi lukhiqiza uhlamvu oluhlukile ngenxa yokusebenzisa kwethu imbewu esekelwe esikhathini. Ekugcineni, umsebenzi wethu wobuciko oyingqayizivele usulungele ukubonwa umhlaba, kufana nethrendi yakamuva eshaya imigwaqo yezindiza. Kuyo yomibili imihlaba, isici sokumangala sihamba phambili, futhi lokho ubuhle bokungahleliwe ezinhlelweni nesitayela semfashini.
Sengiphetha, njengoba izinto ezihlukahlukene zihlangana ukuze zilolonge izwe lemfashini, imitapo yolwazi ehlukene nemisebenzi iyahlangana ukuze kuxazululwe izinselele zohlelo. Ukwakhiwa kwe-char okungahleliwe kungenye yezinto ezimangalisayo esingazenza nge-C++, kufana nokwakha ingubo enhle ngesethi yezinto ezibonakala zingafani. Umlingo wokuqamba - kungaba ngemfashini noma ngekhodi.