Cara memanggil suatu fungsi tanpa menekan tombol

Saya mempunyai pekerjaan rumah untuk membuat sebuah game. Jadi saya telah membuat permainan yang menghasilkan angka acak, menampilkannya, kemudian setelah beberapa detik angka tersebut hilang dan pengguna harus memasukkannya dalam urutan menurun. Permainan berfungsi dengan baik dan semua keluarannya benar... tetapi masalahnya adalah saya telah membuat fungsi yang berbeda untuk membuat angka, mengaturnya, menerima.. dan saya harus menekan tombol enter beberapa kali setiap kali panggilan fungsi datang.

Apakah ada cara agar fungsi-fungsi ini dipanggil tanpa menekan tombol apa pun agar program berfungsi tanpa menekan tombol enter?


person user1937928    schedule 30.12.2012    source sumber
comment
Anda membuat game? Adakah kode contoh yang ingin Anda bagikan kepada kami? Karena dengan mengatakan bahwa Anda membuat sebuah game, sebenarnya Anda tidak banyak bicara.   -  person Darin Dimitrov    schedule 30.12.2012
comment
Saya telah menambahkan tag sleep ke pertanyaan Anda, Anda harus melihat pertanyaan sebelumnya dengan tag itu untuk mendapatkan beberapa petunjuk   -  person Jonathan Wakely    schedule 30.12.2012
comment
Kemungkinan besar Anda mengatur kode Anda sedemikian rupa sehingga menunggu masukan pengguna (beberapa kali) sebelum melanjutkan ke tahap berikutnya.   -  person Bart van Ingen Schenau    schedule 30.12.2012


Jawaban (1)


Ditarik dari Menangkap karakter dari standar input tanpa menunggu enter ditekan

Itu tidak mungkin dilakukan dalam C++ murni, karena terlalu bergantung pada terminal yang digunakan yang mungkin terhubung dengan stdin (biasanya buffering jalur). Namun Anda dapat menggunakan perpustakaan untuk itu:

  1. conio tersedia dengan kompiler windows. Gunakan fungsi _getch() untuk memberi Anda karakter tanpa menunggu tombol enter. Saya bukan seorang pengembang windows, tetapi saya pernah melihat teman sekelas saya hanya memasukkan conio.h dan menggunakannya. Lihat conio.h di wikipedia. Ini mencantumkan getch, yang dinyatakan tidak digunakan lagi dalam Visual C++.
  2. kutukan tersedia untuk linux, implementasi kutukan yang kompatibel juga tersedia untuk windows. Ini juga memiliki fungsi getch. (coba man getch untuk melihat halaman manualnya). Lihat Kutukan di wikipedia.

Saya akan merekomendasikan Anda untuk menggunakan kutukan jika Anda menginginkan kompatibilitas lintas platform. Karena itu, saya yakin ada fungsi yang dapat Anda gunakan untuk mematikan buffering baris (saya yakin itu disebut "mode mentah", bukan "mode matang" (lihat man stty)). Kutukan akan menanganinya untuk Anda secara portabel jika saya tidak salah.

person Syntactic Fructose    schedule 30.12.2012