C同时输入和输出到控制台窗口

前端之家收集整理的这篇文章主要介绍了C同时输入和输出到控制台窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在写一个服务器(主要用于 Windows,但如果我可以保持多平台,这将很酷)我只是使用一个普通的控制台窗口.但是,我希望服务器能够执行诸如text_to_say_here或kick playername等命令.我怎样才能有异步输入/输出?我已经尝试了普通的printf()和gets_s的一些东西但是这导致了一些非常奇怪的东西.

我的意思是像这样的1

谢谢.

解决方法

利用C 11功能快速代码(即跨平台)
#include <atomic>
#include <thread>
#include <iostream>

void ReadCin(std::atomic<bool>& run)
{
    std::string buffer;

    while (run.load())
    {
        std::cin >> buffer;
        if (buffer == "Quit")
        {
            run.store(false);
        }
    }
}

int main()
{
    std::atomic<bool> run(true);
    std::thread cinThread(ReadCin,std::ref(run));

    while (run.load())
    {
        // main loop
    }

    run.store(false);
    cinThread.join();

    return 0;
}

猜你在找的C&C++相关文章