اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

دادن ورودی به برنامه بدون زدن کلید Enter

+2 امتیاز
2,701 نمایش

چطور میتونم برنامه ای بنویسم که موقع گرفتن ورودی از کاربر، نیازی نباشه کاربر کلید Enter بزنه؟

یک مشکل در مورد C++ این است که هم‌اکنون گرایشی قوی در زبان وجود دارد که شما را وادار می‌کند پیش از انجام هر کاری، همه‌ی جوانب آن را بدانید. (Larry Wall)
پرسیده شده جمعه ۱۷ آذر ۱۳۹۱ در C++ توسط CPP_Crawler2  
بازتگ شده شنبه ۲۴ فروردین ۱۳۹۲ توسط admin

1 پاسخ

0 امتیاز

خب تابع getch() دقیقاً همین کارو میکنه که تنها یک کاراکتر میگیره و منتظر هیچ کلید دیگه ای نمیمونه.
البته برای اطلاع از اینکه اون کاراکتر چی بوده، میتونید اینجوری ذخیره‌ش کنید:

    char b;
    b=getch();
    cout<<b;

و اگه بیشتر از یک کاراکتر داشته باشین. دقیقاً مثل گرفتن یک رشته با این تفاوت که نمیخوایم در نهایت کلید اینتر بزنیم، باید از یک حلقه استفاده کنید که تا مدت مشخصی منتظر خوندن یک کاراکتر باشه و اگه کلیدی فشرده نشد عمل خوندن رو تموم کنه. میتونید به این صورت این کارو انجام بدین:

while(countdown++ <= 1000){  // give a second to hit something
    if(b=kbhit())            // if the user presses a key
        break;               // leave the loop early
    Sleep(1);                // else, sleep for 1 ms and try again
}
if (b != 0)          // if something was pressed
    printf("The key was %d\n", getch());
پاسخ داده شده جمعه ۱۸ اسفند ۱۳۹۱ توسط CPP_Crawler4