ورودی کاربر (User Input)
برای گرفتن «ورودی کاربر (User Input)» در C از تابع scanf() کمک می گیریم. سپس با printf() خروجی می دهیم. ورودی یعنی داده ای که کاربر تایپ می کند.
گرفتن یک ورودی با scanf
با قالب نما (Format Specifier) نوع داده را مشخص کن. با & آدرس متغیر را بده.
// عدد کاربر را بگیر و چاپ کن
int myNum;
printf("Type a number:\n");
scanf("%d", &myNum);
printf("Your number is: %d", myNum);
نکته: آدرس حافظه بعداً عمیق تر توضیح داده می شود.
چند ورودی همزمان
می توانی چند مقدار را پشت سرهم بخوانی. ترتیب قالب نما مهم است.
int myNum;
char myChar;
printf("Type a number AND a character and press enter:\n");
scanf("%d %c", &myNum, &myChar);
printf("Your number is: %d\n", myNum);
printf("Your character is: %c\n", myChar);
ورودی رشته با scanf
برای خواندن «رشته (String)» از %s استفاده کن. اندازه آرایه کافی باشد.
char firstName[30];
printf("Enter your first name:\n");
scanf("%s", firstName);
printf("Hello %s", firstName);
هشدار: scanf روی %s تا اولین فاصله می خواند. بنابراین فقط یک کلمه می گیرد.
محدودیت فاصله در scanf
این نمونه نشان می دهد فقط «John» چاپ می شود، نه «John Doe».
char fullName[30];
printf("Type your full name:\n");
scanf("%s", &fullName);
printf("Hello %s", fullName);
// Type your full name: John Doe
// Hello John
خواندن یک خط کامل با fgets
برای چند کلمه از fgets استفاده کن. این تابع تا انتهای خط می خواند.
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
گام های عملی
- نوع داده را تعیین کن و متغیر بساز.
- پیام مناسب با
printfنمایش بده. - با
scanfیاfgetsورودی را بخوان.
برای کار با رشته ها، صفحه توابع رشته و رشته ها را هم ببین.
جمع بندی سریع
- scanf برای اعداد و تک کلمه عالی است.
- %s فاصله را پایان ورودی می بیند.
- fgets یک خط کامل را می خواند.
- اندازه آرایه رشته کافی باشد.
- برای متغیرها از قالب نما درست استفاده کن.