83
символдарына келесі символдар кіреді: бос орын, ‘\t’, ‘\n’, ‘\v’, ‘\f’ және
басқалары.
Форматты
жолдағы литеральдық символдар, % символынан басқасы,
кірме ағында тура осындай символдардың пайда болуын талап етеді. Егер
мұндай символ жоқ болса, онда scanf функциясы енгізуді тоқтатады.
scanf
функциясы кірме ағында бос символдарды өткізіп жібереді. Жалпы
жағдайда енгізу форматының спецификациясы мынадай болады:
%[*] [ені] [модификаторлар] типі,
мұнда ‘*’ символы берілген спецификациямен анықталған өрісті енгізгендегі
бос
орынды қалдыруды білдіреді;
- ‘ені’ берілген спецификация бойынша енгізілген символдардың
максималды мәнін анықтайды;
- ‘модификаторлар’ аргументтер типін нақтылайды;
- ‘типі’ аргументтің типін анықтайды.
Типі келесі мәндерді қабылдай алады:
c – символдық массив, s –
символдар жолы, жолдар бос символдармен
бөлінеді,
d – 10 с/ж таңбасы бар бүтін сан,
i – таңбасы бар бүтін сан, санау жүйесі алғашқы екі цифраға тәуелді.
u – 10 с/ж таңбасыз бүтін сан,
o –8 с/ж таңбасыз бүтін сан,
х, Х – 16 с/ж, таңбасыз бүтін сан,
e, E, f, g, G – жылжымалы сан,
p – көрсеткішке көрсеткіш,
n – бүтін санға көрсеткіш,
[…] – сканерленетін символдар массиві, мысалы, [A321].
Соңғы жағдайда кірме ағыннан тек
квадратты жақшаға алынған
символдар енгізіледі. Егер квадраттық жақшаның ішіндегі алғашқы символ
‘^’ болса, онда массивке кірмейтін символдар ғана енгізіледі. Массивтегі
символдар аралығы ‘-‘ символы арқылы беріледі.
Символдарды енгізгенде жетекші бос символдары мен жолды аяқтайтын
нольдік байтта енгізіледі. Модификаторлар келесі мәндерді қабылдай алады:
h – қысқа бүтін, l, L – ұзын бүтін немесе жылжымалы сан, және тек бүтін
немесе жылжымалы сандар үшін қолданылады.
scanf
функциясын пайдалану бойынша мысалдар келтірейік.
Формат
спецификаторы алдына, жылжымалы санды енгізуден бастап, бос орын
символы тұрғанына назар аударыңыз.
#include
int main() {
int n; double d = 0.0; char c; char* s;
printf("Input an integer: ");
scanf("%d", &n);
printf("Input a double: ");
84
scanf(" %lf", &d);
printf("Input a char: ");
scanf(" %c", &c);
printf("Input a string: ");
scanf(" %s", &s);
return 1;
}
Бұл программада жылжымалы нүктесі бар сан инициалданғанына назар
аударыңыз. Бұл компилятор жылжымалы сандармен жұмысты қолдайтын
кітапханаларды қосу үшін жасалған.
Егер бұл әрекетті жасамаса, онда
орындау кезеңінде жылжымалы санды енгізгенде қате туындайды.
Мәліметтерді консольға форматты түрде шығару үшін
Достарыңызбен бөлісу: