با سلام
خیلی ها مشکلاتی از قبیل اینکه بعد از کد نویسی و کامپایل آن هنگام تبدیل کد به فایل اجرایی صفحه سیاه رنگ داس برایشان فقط باز و بسته می شود و هیچ نتیجه ای را نمی توانند در خروجی برنامه شان مشاهده کنند.
مشکل همان چیزی است که در پاسکال با آن مواجه بودید!!!
یعنی اینکه اگر یادتان باشد در پایان همه برنامه هایی که در پاسکال می نوشتیم عبارت زیر را اضافه می کردیم تا برنامه قبل از پایان منتظر یک ورودی از کاربر بماند تا به صورت خودکار بسته نشود.
در پاسکال کدی که می نوشتیم اینگونه بود:
readln(x);{the program must be wait for getting a variable}
در ++C هم همچین کاری را می توان انجام داد. یعنی:
char x;
cin>>x; //the program must be wait for getting a char
ولی یک امکان بسیار عالی دیگر هم زبان ++C به برنامه نویس می دهد و آن هم استفاده از تابع ()getch است.این تابع در واقع همان کار دستور بالا را انجام می دهد ولی مزایای بیشتری نسبت به دستور بالا دارد.آن هم این است که فقط منتظر یک کاراکتر می ماند که دارای کد اسکی باشد یعنی اگر کاربر کلید های Space یا Enter را هم بزند چون این کلید ها دارای کد اسکی می باشند کنترل برنامه به سیستم عامل بر می گردد.
توجه داشته باشید که برای استفاده از تابع getch باید Header آن را اعلان کنید.که هدر این تابع conio.h می باشد.یعنی در خطوط اولیه برنامه هایی که می نویسید باید برای مثال بعد از آوردن هدر iostream هدر conio.h را به صورت زیر بیاورید:
#include<iostream> //define the cin & cout ,… functions
#include<conio.h> //define the getch() and other functions
using namespace std;
int main()
{
.
.
.
getch();
return 0;
{
توجه داشته باشید که تابع getch را باید قبل از دستور return 0 بیاورید.
من از روزهای اولی که برنامه نویسی را شروع کردم از این روش استفاده می کردم و هنوز هم از همین روش (استفاده از تابع getch) استفاده می کنم.
هدر conio.h در همه کامپایلر ها وجود دارد و در همه کامپایلر ها از قبیل VC++,Borland,Dev,Turbo,… استفاده کنید.
فقط توجه داشته باشید که اگر از کامپایلر Eclips در سیستم عامل های لینوکس(GNU) استفاده می کنید این هدر در کتابخانه این کامپایلر ها وجود ندارد.
اگه توجه داشته باشید من تو پست های قبلی که تکالیف استاد موحدیان رو حل کرده بودم از همین روش استفاده کرده بودم.
اگر باز هم در این مورد مشکلی داشتید تو کامنت های همین پست مطرح کنید.
موفق باشید.