Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Input Konsol Tidak Menyekat dalam C Menggunakan Concurrency?
Input Konsol Tidak Menyekat dalam C
Keperluan biasa dalam pengaturcaraan ialah mengendalikan arahan pengguna sementara program terus berjalan dan mengeluarkan maklumat. Kaedah input konsol tradisional dalam C menyekat pelaksanaan program sehingga pengguna menekan enter, tetapi untuk input tidak menyekat, anda memerlukan pendekatan alternatif.
Penyelesaian: Concurrency
C 11 memperkenalkan perpustakaan std::async dan std::future untuk concurrency. Ini membolehkan anda menghasilkan urutan berasingan untuk input tidak menyekat tanpa menghentikan program utama.
Pelaksanaan
Kod yang disediakan menunjukkan input konsol tidak menyekat:
<code class="cpp">#include <iostream> #include <future> #include <thread> #include <chrono> 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 kod ini:
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Input Konsol Tidak Menyekat dalam C Menggunakan Concurrency?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!