تفاوت بین scanf و gets

فهرست مطالب:

تفاوت بین scanf و gets
تفاوت بین scanf و gets

تصویری: تفاوت بین scanf و gets

تصویری: تفاوت بین scanf و gets
تصویری: تفاوت بین توابع ورودی scanf() و gets(). 2024, نوامبر
Anonim

تفاوت کلیدی – scanf در مقابل دریافت

یک تابع مجموعه ای از دستورات برای انجام یک کار خاص است. بدون نوشتن تمام دستورات در یک برنامه، می توان آن را به چندین تابع تقسیم کرد. در برنامه نویسی، کاربر می تواند توابع خود را تعریف کند. همچنین توابعی توسط زبان های برنامه نویسی ارائه شده است. زبان C تعدادی توابع را فراهم می کند، بنابراین برنامه نویس می تواند مستقیماً از آنها استفاده کند بدون اینکه از ابتدا آنها را پیاده سازی کند. دو تابع ارائه شده توسط زبان C عبارتند از scanf و gets. این مقاله تفاوت بین این دو تابع را مورد بحث قرار می دهد. تفاوت اصلی بین scanf و gets در این است که scanf پس از مواجهه با یک فضای خالی، خط جدید یا انتهای فایل (EOF) ورودی را به پایان می‌رساند، در حالی که gets یک فضای خالی را به عنوان بخشی از رشته ورودی در نظر می‌گیرد و با برخورد با خط جدید یا EOF، ورودی را پایان می‌دهد.

اسکنف چیست؟

عملکرد scanf می‌تواند ورودی‌ها را از صفحه‌کلید بخواند و آن‌ها را مطابق با فرمت مشخص‌شده ذخیره می‌کند. ورودی را می خواند تا زمانی که با یک فضای خالی، خط جدید یا EOF مواجه شود. نحو به شرح زیر است.

scanf("رشته قالب"، لیست آدرس متغیرها)؛

برای درک scanf به مثال زیر مراجعه کنید.

تفاوت بین scanf و gets
تفاوت بین scanf و gets
تفاوت بین scanf و gets
تفاوت بین scanf و gets

شکل 01: scanf با یک ورودی

طبق برنامه بالا، ورودی دریافتی از صفحه کلید یک عدد صحیح است، بنابراین مشخص کننده فرمت %d است. اگر یک مقدار کاراکتر دریافت می کند، مشخص کننده قالب %c است.اگر یک مقدار ممیز شناور دریافت کنید، مشخص کننده قالب %f است. مقدار ورودی دریافتی باید در متغیر عدد ذخیره شود. بنابراین آدرس عدد متغیر به تابع scanf منتقل می شود. حالا متغیر عدد حاوی مقدار داده شده توسط کاربر از صفحه کلید است. در نهایت، می‌توانیم متغیر عدد را برای بررسی مقدار چاپ کنیم.

همچنین امکان دریافت بیش از یک مقدار در یک زمان وجود دارد.

تفاوت بین scanf و gets_شکل 02
تفاوت بین scanf و gets_شکل 02
تفاوت بین scanf و gets_شکل 02
تفاوت بین scanf و gets_شکل 02

شکل 02: scanf با ورودی های متعدد

ورودی های دریافتی در متغیر شماره 1 و شماره 2 ذخیره می شوند. مقادیر را می توان با استفاده از printf بررسی کرد.

چه می شود؟

تابع gets برای دریافت ورودی از صفحه کلید تا مواجهه با خط جدید یا EOF استفاده می شود. فضای خالی به عنوان بخشی از ورودی در نظر گرفته می شود. نحو تابع gets به شرح زیر است.

gets("محل ذخیره رشته");

اگر هنگام دریافت رشته خطایی وجود داشته باشد، تابع gets مقدار تهی را برمی گرداند.

به مثال زیر مراجعه کنید،

تفاوت کلیدی بین scanf و gets
تفاوت کلیدی بین scanf و gets
تفاوت کلیدی بین scanf و gets
تفاوت کلیدی بین scanf و gets

شکل 03: دریافت

ورودی توسط تابع gets دریافت شده و در متغیر word1 ذخیره می شود. اگر برنامه نویس از scanf به جای gets استفاده کرده و رشته ای مانند "hello world" را وارد کند، scanf به دلیل فضای خالی، رشته را به صورت دو رشته می خواند.اما gets آن را به عنوان یک رشته «سلام جهان» می خواند.

شباهت‌های بین scanf و gets چیست؟

  • هر دو توابع ارائه شده توسط زبان برنامه نویسی C هستند.
  • هر دو باید حاوی فایل هدر stdio.h برای استفاده از این توابع باشند.
  • هر دو را می توان برای دریافت ورودی از ورودی استاندارد استفاده کرد.

تفاوت بین scanf و gets چیست؟

scanf در مقابل دریافت

scanf یک تابع C برای خواندن ورودی از ورودی استاندارد تا زمان مواجهه با یک فضای خالی، خط جدید یا EOF است. gets یک تابع C برای خواندن ورودی از ورودی استاندارد تا زمان مواجهه با خط جدید یا EOF است. فضای خالی را به عنوان بخشی از ورودی در نظر می گیرد.
نحو
تابع scanf رشته قالب و فهرست آدرس متغیرها را می گیرد. به عنوان مثال، scanf("%d", &number); تابع gets نام متغیر را می گیرد تا مقدار دریافتی را ذخیره کند. به عنوان مثال. gets(name);
انعطاف پذیری
scanf می تواند چندین مقدار از انواع داده های مختلف را بخواند. gets() فقط داده های رشته کاراکتر را دریافت می کند.

خلاصه - scanf در مقابل دریافتها

scanf و gets توابعی هستند که توسط زبان برنامه نویسی C ارائه می شوند. کاربر نیازی به پیاده سازی این توابع از ابتدا ندارد. آنها می توانند مستقیماً از آنها در برنامه های خود استفاده کنند. تفاوت بین scanf و gets در این است که scanf با مواجهه با یک فضای خالی، خط جدید یا انتهای فایل (EOF) ورودی را به پایان می‌رساند و یک فضای خالی را به عنوان بخشی از رشته ورودی در نظر می‌گیرد و با برخورد با خط جدید یا EOF، ورودی را پایان می‌دهد.استفاده از scanf یا gets به نحوه دریافت ورودی کاربر از ورودی استاندارد که بیشتر اوقات صفحه کلید است بستگی دارد. scanf انعطاف پذیرتر از چیزی است که می شود.

دانلود نسخه PDF scanf vs gets

می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت نقل قول برای اهداف آفلاین از آن استفاده کنید. لطفاً نسخه PDF را از اینجا دانلود کنید تفاوت بین scanf و دریافت

توصیه شده: