در زبان C دادههای ورودی میتوانند به کمک تابع کتابخانهای scanf از طریق دستگاه ورودی استاندارد وارد کامپیوتر شوند. تابع scanf نیز تابع فرمتدار و مشابه تابع printf است ولی در جهت عکس عمل میکند. به کمک این تابع میتوان دادههای عددی، کاراکترها، رشتهها یا ترکیبی از آنها را وارد کامپیوتر کرد. فرمت این تابع مشابه فرمت تابع printf و فرم کلی آن به صورت زیر است.
scanf (“control string”, arguments list) ;
یا
scanf (“control string”, argl , arg2 ,…, arg n) ;
در اینجا نقش رشته کنترل مشابه تابع printf و شامل اطلاعات قالببندی خاص است. مشابه printf این تابع نیز میتواند هر تعداد آرگومان را دارا باشد، که در آن اولین آرگومان رشته فرمت یا رشته کنترل است. همچنین این تابع، اغلب همان کد فرمت تابع printf را به کار میبرد؛ برای مثال کدهای فرمت %s, %c , %f , %d که به ترتیب برای خواندن دادههایی از نوع مقادیر صحیح، اعشاری، کاراکتر و رشته به کار میروند. تفاوت مهم بین این دو تابع آن است که در جلوی آرگومانها، اپراتور آدرس یعنی “&” نیز قرار میگیرد.
البته اگر بخواهید مقداری را برای متغیر رشتهای بخوانید، نیازی به اپراتور “&” نخواهد بود زیرا رشتهها در زبان ِC به صورت آرایهای از نوع کاراکتر معرفی میگردند و نام آرایه نیز معرف آدرس آرایه (یعنی آدرس اولین عنصر آن) است