C foydalanuvchi kiritishi
Foydalanuvchi kiritishi
C tilida printf() qiymatlarni chiqarish uchun ishlatilishini allaqachon bilib oldingiz.
Foydalanuvchi kiritgan ma’lumotni olish uchun scanf() funksiyasidan foydalanishingiz mumkin:
Misol
Foydalanuvchi kiritgan sonni chiqaring:
// Create an integer variable that will store the number we get from the user
int myNum;
// Ask the user to type a number
printf("Type a number: \n");
// Get and save the number the user types
scanf("%d", &myNum);
// Output the number the user typed
printf("Your number is: %d", myNum);
Misolni ishga tushirish »
scanf() funksiyasi ikkita argument qabul qiladi: o‘zgaruvchining format spetsifikatori (yuqoridagi misolda %d) va o‘zgaruvchining xotira manzilini saqlaydigan havola operatori (&myNum).
Maslahat: Xotira manzillari va funksiyalar haqida keyingi bobda batafsil bilib olasiz.
Bir nechta qiymat kiritish
scanf() funksiyasi bir nechta qiymat kiritishga ham imkon beradi (quyidagi misolda butun son va belgi):
Misol
// Create an int and a char variable
int myNum;
char myChar;
// Ask the user to type a number AND a character
printf("Type a number AND a character and press enter: \n");
// Get and save the number AND character the user types
scanf("%d %c", &myNum, &myChar);
// Print the number
printf("Your number is: %d\n", myNum);
// Print the character
printf("Your character is: %c\n", myChar);
Misolni ishga tushirish »
String kiritishni qabul qilish
Foydalanuvchi kiritgan stringni ham olishingiz mumkin:
Misol
Foydalanuvchining ismini chiqaring:
// Create a string
char firstName[30];
// Ask the user to input some text
printf("Enter your first name: \n");
// Get and save the text
scanf("%s", firstName);
// Output the text
printf("Hello %s", firstName);
Misolni ishga tushirish »
Eslatma: scanf() funksiyasida stringlar bilan ishlaganda string/massiv o‘lchamini ko‘rsatishingiz kerak (misolimizda juda katta son — 30 ni ishlatdik, lekin shunda hech bo‘lmaganda ism uchun yetarli belgi saqlanishiga amin bo‘lamiz), havola operatoridan (&) esa foydalanishingiz shart emas.
Biroq scanf() funksiyasining ba’zi cheklovlari bor: u bo‘sh joyni (probel, tabulyatsiya va h.k.) tugatuvchi belgi deb hisoblaydi, ya’ni u faqat bitta so‘zni ko‘rsata oladi (hatto siz bir nechta so‘z kiritsangiz ham). Masalan:
Misol
char fullName[30];
printf("Type your full name: \n");
scanf("%s", &fullName);
printf("Hello %s", fullName);
// Type your full name: John Doe
// Hello John
Yuqoridagi misolda dastur "John Doe" matnini chiqaradi deb kutishingiz mumkin, biroq u faqat "John" ni chiqaradi.
Shuning uchun stringlar bilan ishlaganda matn qatorini o‘qish uchun ko‘pincha fgets() funksiyasidan foydalanamiz. E’tibor bering, quyidagi argumentlarni ko‘rsatishingiz shart: string o‘zgaruvchisining nomi, sizeof(string_name) va stdin:
Misol
char fullName[30];
printf("Type your full name: \n");
fgets(fullName, sizeof(fullName), stdin);
printf("Hello %s", fullName);
// Type your full name: John Doe
// Hello John Doe
Misolni ishga tushirish »
Kiritish sifatida bitta so‘z olish uchun scanf() funksiyasidan, bir nechta so‘z uchun esa fgets() funksiyasidan foydalaning.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
