Негизги айырма – scanf менен get
Функция – бул белгилүү бир тапшырманы аткаруу үчүн билдирүүлөрдүн жыйындысы. Бир эле программада бардык билдирүүлөрдү жазбастан, аны бир нече функцияга бөлүүгө болот. Программалоодо колдонуучу өзүнүн функцияларын аныктай алат. Программалоо тилдери тарабынан берилген функциялар да бар. Си тили бир катар функцияларды камсыз кылат, ошондуктан программист аларды башынан эле ишке ашырбай эле түздөн-түз колдоно алат. Си тили тарабынан берилген эки функция - scanf жана get. Бул макалада бул эки функциянын ортосундагы айырма талкууланат. scanf менен gets ортосундагы негизги айырма, scanf боштукка, жаңы сапка же файлдын аягына (EOF) жолуккандан кийин киргизүүнү аяктайт, ал эми gets бош мейкиндикти киргизүү сабынын бөлүгү катары карайт жана жаңы сап же EOF жолукканда киргизүүнү аяктайт.
Scanf деген эмне?
Scanf функциясы клавиатурадан киргизүүнү окуй алат жана аларды берилген формат спецификациясына ылайык сактайт. Ал боштук, жаңы сап же EOF келгенге чейин киргизүүнү окуйт. Синтаксис төмөнкүдөй.
scanf("формат сап", өзгөрмөлөрдүн даректеринин тизмеси);
Scanf түшүнүү үчүн төмөндө келтирилген мисалды караңыз.
01-сүрөт: бир киргизүү менен сканерлөө
Жогорудагы программага ылайык, клавиатурадан алынган киргизүү бүтүн сан, андыктан формат спецификациясы %d. Эгерде ал символдун маанисин алып жатса, формат спецификациясы %c болот. Эгерде калкыма чекиттин мааниси алынса, формат спецификациясы %f болот. Кабыл алынган киргизүү мааниси сан өзгөрмөсүндө сакталышы керек. Демек, өзгөрмө сандын дареги scanf функциясына берилет. Эми сан өзгөрмөсү колдонуучу тарабынан клавиатурадан берилген маанини камтыйт. Акырында, маанини текшерүү үчүн сан өзгөрмөсүн басып чыгара алабыз.
Бир эле учурда бирден ашык маанини алууга да болот.
02-сүрөт: бир нече киргизүү менен сканерлөө
Алынган киргизүүлөр номер1 жана сан2 өзгөрмөлөрүндө сакталат. Маанилерди printf аркылуу текшерсе болот.
Эмне алат?
gets функциясы жаңы сызык же EOF жолукканга чейин клавиатурадан киргизүүнү алуу үчүн колдонулат. Боштук киргизүүнүн бир бөлүгү катары каралат. Get функциясынын синтаксиси төмөнкүдөй.
gets("сапты кайда сактоо керек");
Сапты алууда ката кетсе, gets функциясы нөлдүк маанини кайтарат.
Төмөнкү мисалды караңыз,
03-сүрөт: алат
Киргизүү gets функциясы тарабынан кабыл алынат жана word1 өзгөрмөсүндө сакталат. Эгерде программист gets ордуна scanf колдонсо жана "салам дүйнө" сыяктуу сапты киргизсе, scanf боштуктун айынан сапты эки сап катары окуйт. Бирок gets аны "салам дүйнө" деп окуйт.
Scanf менен get ортосунда кандай окшоштуктар бар?
- Экөө тең C программалоо тили тарабынан камсыздалган функциялар.
- Бул функцияларды колдонуу үчүн экөө тең stdio.h баш файлды камтышы керек.
- Экөөнү тең стандарттык киргизүүдөн киргизүү үчүн колдонсо болот.
Scanf жана get ортосунда кандай айырма бар?
scanf vs get |
|
scanf – стандарттык киргизүүдөн боштук, жаңы сап же EOF жолукканга чейин киргизүүнү окуу үчүн C функциясы. | gets - жаңы сапка же EOFке туш келгенге чейин стандарттык киргизүүдөн киргизүүнү окуу үчүн C функциясы. Ал боштукту киргизүүнүн бир бөлүгү катары карайт. |
Синтаксис | |
scanf функциясы формат сабын жана өзгөрмөлөрдүн даректеринин тизмесин алат. мис. scanf(“%d”, &саны); | gets функциясы алынган маанини сактоо үчүн өзгөрмөнүн атын алат. мис. алат(аты); |
Ийкемдүүлүк | |
scanf ар кандай маалымат түрлөрүнүн бир нече маанилерин окуй алат. | gets() символдук сап дайындарын гана алат. |
Корытынды – scanf vs get
scanf жана gets C программалоо тили тарабынан берилген функциялар. Колдонуучуга бул функцияларды башынан эле ишке ашыруунун кереги жок. Алар түздөн-түз өз программаларында колдоно алышат. scanf менен gets ортосундагы айырма, scanf боштук, жаңы сап же Файлдын аягы (EOF) жолуккан учурда киргизүүнү аяктайт жана боштукту киргизүү сапынын бир бөлүгү катары карайт жана жаңы сап же EOF кездешкенде киргизүүнү аяктайт.scanf же gets колдонуу көбүнчө клавиатура болгон стандарттык киргизүүдөн колдонуучунун киргизүүсүн алуу жолуна жараша болот. scanf алганга караганда ийкемдүү.
Scanf vs getsтин PDF версиясын жүктөп алыңыз
Сиз бул макаланын PDF версиясын жүктөп алып, шилтеме эскертүүсүнө ылайык оффлайн максаттарында колдоно аласыз. Сураныч, PDF версиясын бул жерден жүктөп алыңыз scanf жанаортосундагы айырма