Негізгі айырмашылық – scanf және алады
Функция – белгілі бір тапсырманы орындауға арналған мәлімдемелер жинағы. Бір бағдарламада барлық операторларды жазбай-ақ, оны бірнеше функцияларға бөлуге болады. Бағдарламалауда қолданушы өз функцияларын анықтай алады. Бағдарламалау тілдерімен қамтамасыз етілген функциялар да бар. Си тілі бірқатар функцияларды қамтамасыз етеді, сондықтан бағдарламашы оларды басынан бастап жүзеге асырмай-ақ тікелей пайдалана алады. Си тілімен қамтамасыз етілген екі функция - scanf және get. Бұл мақалада осы екі функцияның айырмашылығы талқыланады. scanf және gets арасындағы негізгі айырмашылық мынада: scanf бос орын, жаңа жол немесе файлдың соңы (EOF) кездескен кезде енгізуді аяқтайды, ал get бос орынды енгізу жолының бөлігі ретінде қарастырады және жаңа жол немесе EOF кездескен кезде енгізуді аяқтайды.
Scanf дегеніміз не?
Scanf функциясы пернетақтадан енгізуді оқи алады және оларды берілген пішім спецификаторына сәйкес сақтайды. Ол бос орын, жаңа жол немесе EOF кездескенше кірісті оқиды. Синтаксис келесідей.
scanf («пішім жолы», айнымалылар мекенжайларының тізімі);
Scanf түсіну үшін төменде келтірілген мысалды қараңыз.
01-сурет: бір кіріспен сканерлеу
Жоғарыдағы бағдарламаға сәйкес пернетақтадан алынатын кіріс бүтін сан, сондықтан пішім спецификаторы %d. Егер ол таңба мәнін алып жатса, пішім спецификаторы %c болады. Егер өзгермелі нүкте мәнін алсаңыз, пішім спецификаторы % f болады. Алынған кіріс мәні сан айнымалысында сақталуы керек. Сондықтан айнымалы санның адресі scanf функциясына беріледі. Енді сандық айнымалы пайдаланушы пернетақтадан берген мәнді қамтиды. Соңында мәнді тексеру үшін сан айнымалысын басып шығаруға болады.
Бір уақытта бірнеше мән алуға болады.
02-сурет: бірнеше кірісі бар сканерлеу
Қабылданған кірістер сан 1 және нөмір2 айнымалыларында сақталады. Мәндерді printf арқылы тексеруге болады.
Не алады?
gets функциясы жаңа жол немесе EOF кездескенше пернетақтадан енгізуді қабылдау үшін пайдаланылады. Бос орын енгізу бөлігі ретінде қарастырылады. get функциясының синтаксисі келесідей.
gets(“жолды қайда сақтау керек”);
Жолды қабылдау кезінде қате орын алса, gets функциясы нөлдік мәнді қайтарады.
Төмендегі мысалды қараңыз,
03-сурет: алады
Кіріс gets функциясы арқылы қабылданады және word1 айнымалысында сақталады. Егер бағдарламашы «сәлем әлем» сияқты жолды алудың және енгізудің орнына 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 және алады
scanf және get - бұл C бағдарламалау тілімен қамтамасыз етілген функциялар. Пайдаланушыға бұл функцияларды басынан бастап орындау қажет емес. Оларды өз бағдарламаларында тікелей пайдалана алады. scanf пен gets арасындағы айырмашылық мынада: scanf бос орын, жаңа жол немесе файлдың соңы (EOF) кездескен кезде енгізуді қабылдауды аяқтайды және бос орынды енгізу жолының бөлігі ретінде қарастырады және жаңа жол немесе EOF кездескен кезде енгізуді аяқтайды.scanf немесе gets пайдалану пайдаланушы енгізуін стандартты енгізуден алу жолына байланысты, ол көбінесе пернетақта болып табылады. scanf алғанға қарағанда икемді.
Scanf vs gets файлының PDF нұсқасын жүктеп алу
Сіз осы мақаланың PDF нұсқасын жүктеп алып, сілтеме жазбасына сәйкес офлайн мақсаттарда пайдалана аласыз. PDF нұсқасын мына жерден жүктеп алыңыз: scanf жәнеарасындағы айырмашылық