برای خواندن یک کاراکتر از دستگاه ورودی، میتوان علاوه بر تابع scanf از تابع getchar نیز استفاده کرد. تابع مزبور که جزء کتابخانه I/O زبان استاندارد C است، کاراکتری از دستگاه ورودی استاندارد که معمولاً صفحهکلید است میخواند. این تابع آرگومان ندارد و به طور متعارف در یک دستور انتساب یا جایگذاری به کار میرود و کاراکتر دریافتی از ورودی را به متغیری که در سمت چپ دستور جایگذاری مورد نظر است اختصاص میدهد. شکل کلی آن به صورت زیر است.
character variable = getchar() ;
= getchar() ; متغیر کاراکتری
که در آن متغیر کاراکتری نام متغیری از نوع کاراکتر است که باید از قبل توصیف شده باشد.
مثال ۳ـ۱۲ به دستورهای زیر توجه کنید.
char ch ;
ch = getchar() ;
در عبارت اول، متغیر ch از نوع کاراکتر توصیف شده است. وقتی که اجرای برنامه به دستور دوم برسد، برنامه منتظر فشار دادن کلیدی از صفحهکلید میشود. حال کاراکتر کلید فشار داده شده، به متغیر ch اختصاص مییابد. چنانچه متغیر ch از نوع int معرفی گردد، کد اسکی کاراکتر مربوط به کلید فشار داده شده، به آن متغیر اختصاص مییابد.
اگر هنگام خواندن کاراکتر با تابع getchar، شرایط پایان فایل پیش آید مقدار سمبولیکی EOF به طور خودکار برگشت داده میشود (این مقدار در داخل فایل stdio.h اختصاص مییابد. به طور متعارف مقدار ۱- به EOF اختصاص داده میشود، اگرچه ممکن است این مقدار از کامپایلری به کامپایلر دیگر فرق کند). ظاهر شدن EOF بهاین طریق، راه سادهای برای تشخیص پایان فایل در هنگام اجرای آن است ( در این مورد، در مبحث فایلها بیشتر بحث خواهیم کرد. لذا به هیچ وجه نگران آن نباشید). میتوان تابع getchar را نیز برای خواندن رشته چند کاراکتری به صورت حلقه تکرار به کار برد که در هر تکرار یک کاراکتر را بخواند.