c++ 异步获取输入

原文链接: c++ 异步获取输入 上一篇: ...
摘要由CSDN通过智能技术生成

原文链接: c++ 异步获取输入

上一篇: IDEA 配置Tomcat 运行Web项目

下一篇: cvxopt 非线性规划问题

需求,异步获取输入并将输入输出

效果,在死循环中不停输出no key

使用conio 中的函数

kbhit是否有按键输入,是返回1,否返回0

getch 用于获取输入字符

这里不使用cin或getchar是因为他们获取输入时,必须停掉当前循环,直到有输入才会继续执行,但是使用conio 库中的函数可以在循环运行过程中获取输入数据,不需要停掉当前循环

#include<conio.h>
#include<iostream>
#include <stdlib.h>
#include <windows.h>

using namespace std;
int main()
{

  while(1)//当没有键按下
  {
      cout<<"no key "<<endl;

      // 如果有按键输入,将其捕获并输出
      if(kbhit()){
        char t = getch();
        cout<<"char is: "<<t<<endl;
      }
    Sleep(100);
  }

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenVINO C++异步推理 OpenVINO是Intel推出的工具箱,用于加速深度学习模型的推理。其中,C++是OpenVINO中使用最广泛的编程语言之一。异步推理是OpenVINO中的一个重要功能,它可以提高模型推理的效率。 异步推理的实现步骤如下: 1.创建推理引擎 首先,需要创建一个推理引擎。推理引擎是OpenVINO中的一个重要组件,用于加载模型和执行推理任务。 ```cpp InferenceEngine::Core ie; // 创建推理引擎 ``` 2.加载模型 接着,需要加载模型。可以使用推理引擎中的`ReadNetwork`方法来加载模型。 ```cpp InferenceEngine::CNNNetwork network = ie.ReadNetwork(model_xml_path, model_bin_path); // 加载模型 ``` 3.为推理任务创建异步请求 创建异步请求是异步推理的核心。可以使用推理引擎中的`CreateInferRequest`方法来创建异步请求。 ```cpp InferenceEngine::InferRequest::Ptr request = ie.CreateInferRequestPtr(); // 创建异步请求 ``` 4.将输入数据传递给异步请求 接着,需要将输入数据传递给异步请求。可以使用异步请求中的`SetBlob`方法来设置输入数据。 ```cpp request->SetBlob(input_blob_name, input_blob); // 设置输入数据 ``` 5.执行推理任务 执行推理任务是异步推理的最后一步。可以使用异步请求中的`StartAsync`方法来执行推理任务。 ```cpp request->StartAsync(); // 执行推理任务 ``` 6.等待推理任务完成 异步推理的最后一步是等待推理任务完成。可以使用异步请求中的`Wait`方法来等待推理任务完成。 ```cpp request->Wait(InferenceEngine::IInferRequest::WaitMode::RESULT_READY); // 等待推理任务完成 ``` 完整的异步推理示例代码如下: ```cpp #include <iostream> #include <string> #include <chrono> #include <inference_engine.hpp> using namespace std; int main() { // 1.创建推理引擎 InferenceEngine::Core ie; // 2.加载模型 string model_xml_path = "path/to/model.xml"; string model_bin_path = "path/to/model.bin"; InferenceEngine::CNNNetwork network = ie.ReadNetwork(model_xml_path, model_bin_path); // 3.为推理任务创建异步请求 InferenceEngine::InferRequest::Ptr request = ie.CreateInferRequestPtr(); // 4.将输入数据传递给异步请求 string input_blob_name = "input"; InferenceEngine::Blob::Ptr input_blob = request->GetBlob(input_blob_name); float* input_data = input_blob->buffer().as<float*>(); // TODO: 将输入数据填充到 input_data 中 // 5.执行推理任务 request->StartAsync(); // 6.等待推理任务完成 request->Wait(InferenceEngine::IInferRequest::WaitMode::RESULT_READY); // 7.获取输出数据 string output_blob_name = "output"; InferenceEngine::Blob::Ptr output_blob = request->GetBlob(output_blob_name); float* output_data = output_blob->buffer().as<float*>(); // TODO: 处理输出数据 return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值