تفاوت SCanf با Cin و Printf با Cout

printf و cout هر دو در استاندارد ++C هستند ولی با توجه به نوع پیاده سازی cout که مختص برنامه نویسی شیء گرای
++C می باشد، اصولا جایگزین تابع قدیمی printf می شود که از C به یادگار مانده است.

خب اول با یک نمونه شروع می کنیم تا مقایسه راحت تر بشه، برنامه محاسبه سری فیبوناچی :
اول با استفاده از printf و scanf :

#include "stdio.h"
#include "conio.h"
int fib(int n)
{
if (2>n)
return n;
return fib(n-1)+fib(n-2);
}
int main()
{
int n;
clrscr();
printf ("Please enter n : ");
scanf ("%d",&n);
printf ("\nfibonacci(%d) = %d",n,fib(n));
printf ("\nPress any key to continue.");
getch();
return 0;
}

حالا برنامه را با استفاده از cin و cout می نویسم :

#include "iostream.h"
#include "conio.h"
int fib(int n)
{
if (2>n)
return n;
return fib(n-1)+fib(n-2);
}
int main()
{
int n;
clrscr();
cout << "Please enter n : "; cin >> n;
cout << endl << "fibonacci(" << n << ") = " << fib(n);
cout << endl << "Press any key to continue.";
getch();
return 0;
}

اولین تفاوت تو سطر اوله : بجای stdio.h از iostream.h استفاده شده که cin و cout تو اون تعریف شده اند.
بقیه برنامه یکسانه تا به دستورات scanf و printf می رسیم.
اینکه کدوم روش مورد استفاده قرار بگیره به سلیقه (شما نه، استادتون) بستگی داره مگر تو درس برنامه سازی پیشرفته
که واسه مباحث برنامه نویسی شیء گرا اصولا از cin و cout استفاده می شه. وگرنه هر دو روش به راحتی
قابل پیاده سازی هستند و فرق زیادی ندارند.

خب حالا می خواهیم یک عبارت ثابت رو به خروجی بفرستیم، عبارتی که از هیچ متغیری داخلش استفاده نشده مثل Press any key.
اول با Printf می نویسیم :

printf ("Press any key");

و حالا با cout :

cout << "Press any key";

فرق زیادی که نداشت؟ حالا اگه بخواهیم وارد سطر بعدی صفحه نمایش بشویم :

printf ("\n");

که n\ باعث رفتن به سطر بعدی می شه.

و حالا با cout :

cout << endl;

که endl باعث رفتن به سطر بعدی می شه.

اشتراک گذاری

اشتراک گذاری در facebook
اشتراک گذاری در twitter
اشتراک گذاری در linkedin
اشتراک گذاری در reddit
اسکرول به بالا