Input Konsol Tak Segerak untuk Program C
Input konsol tidak menyekat adalah penting untuk mengendalikan arahan pengguna semasa program berjalan secara berterusan. Dalam C , terdapat pelbagai pendekatan untuk mencapainya.
C 11 Solution
Satu kaedah berkesan menggunakan C 11 ialah menggunakan std::thread dan <code class="hljs">std::perpustakaan masa hadapan. Berikut ialah contoh:
<code class="cpp">#include <iostream> #include <future> #include <thread> #include <chrono> static std::string getAnswer() { std::string answer; std::cin >> answer; return answer; } int main() { std::chrono::seconds timeout(5); std::cout << "Do you even lift?" << std::endl << std::flush; std::string answer = "maybe"; // default to maybe std::future<std::string> future = std::async(getAnswer); if (future.wait_for(timeout) == std::future_status::ready) answer = future.get(); std::cout << "the answer was: " << answer << std::endl; exit(0); }</code>
Dalam contoh ini, pustaka std::thread digunakan untuk mencipta utas berasingan yang mengendalikan input sementara utas utama meneruskan pelaksanaan. Pustaka <code class="hljs">std::future digunakan untuk mendapatkan semula input daripada utas berasingan secara tidak segerak.
Pendekatan ini membenarkan atur cara untuk mengeluarkan maklumat sambil mengendalikan arahan pengguna secara serentak, menyediakan antara muka pengguna yang responsif dan tidak menyekat .
Atas ialah kandungan terperinci Bagaimanakah Program C Boleh Melaksanakan Input Konsol Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!