C/C++ 简单的输入输出测试用例

在实际开发中经常会遇到简单调试接口的场景,需要从键盘输入一个字符,响应相应操作,整体逻辑就是 

1.获取键盘输入

2.执行操作

3.再次等待获取键盘输入

虽然上述步骤极其容易但是总归是需要时间去拉一个demo,下面给出demo 用例,便于大家修改测试

#include <iostream>
#include <string>
#include <vector>#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>using namespace std;
void PrintTestList()
{cout << "*--------------------------------------------------*" << endl;cout << "|       _______    ______     ____     _______     |" << endl;cout << "|          |      |          |            |        |" << endl;cout << "|          |      |_____     |____        |        |" << endl;cout << "|          |      |               |       |        |" << endl;cout << "|          |      |______     ____|       |        |" << endl;cout << "|                                                  |" << endl;cout << "|UAV                      control_valve            |" << endl;cout << "|   1 : control_take_off    3:  control            |" << endl;cout << "|   2 : control_turn_off                           |" << endl;cout << "|                                                  |" << endl;cout << "|                                                  |" << endl;cout << "|0:Exit.                         lt                |" << endl;cout << "*--------------------------------------------------*" << endl;}std::string GetInput()
{std::string input;(void)getline(std::cin, input);if (input == "") {return "";}return input;
}int GetIntInput()
{std::string input;(void)getline(std::cin, input);if (input == "") {return -1;}int inputIndex = stoi(input);if (inputIndex < 0) {cout << "invalid input" << endl;return -1;}return inputIndex;
}int DOControllerEngine(string deviceId, string cmd)
{int ret = EM_ERR_OK;string input = "";string output = "";ret = ControllerEngine::GetInstance()->ExecCommand(deviceId, cmd, "input", output);if (ret != EM_ERR_OK) {std::cout << "ExecCommand " << deviceId <<  cmd << "failed. ret=" << ret << ", output: " << output << std::endl;} else {std::cout << "ExecCommand " << deviceId <<  cmd << "success." << ", output: " << output << std::endl;}return ret;
}int DOControllerEngine(string deviceId, string cmd, string &input, string &output)
{int ret = EM_ERR_OK;ret = ControllerEngine::GetInstance()->ExecCommand(deviceId, cmd, input, output);if (ret != EM_ERR_OK) {std::cout << "ExecCommand " << deviceId <<  cmd << "failed. ret=" << ret << ", output: " << output << std::endl;} else {std::cout << "ExecCommand " << deviceId <<  cmd << "success." << ", output: " << output << std::endl;}return ret;
}int main()
{while (true) {PrintTestList();switch (GetIntInput()) {case 0:goto EXIT;break;case 1:DOControllerEngine("kaihong_controller_uav_001","control_take_off");break;case 2:DOControllerEngine("kaihong_controller_uav_001","control_turn_off");break;case 3: {cout << "Please enter a percentage value (0 ~ 100) :" ;int num = GetIntInput();char buf[1024] = {0};//sprintf(buf,"{\"name\":\"status\",\"value\":%d}",num);sprintf(buf,"[{\"name\" : \"status\",\"value\" : %d }]",num);string output;string input(buf);cout << buf << endl;DOControllerEngine("control_valve_dl_001","control",input,output);break;}case 4: {break;}case 5:{break;}case 6: break;case 7:break;case 8:break;case 9:break;default:cout << "invalid input" << endl;break;}}
EXIT:return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask中获取HTTPS请求的代理IP的原始IP地址

在Flask中获取HTTPS请求的代理IP的原始IP地址&#xff0c;你可以使用X-Forwarded-For HTTP头。这个头可能包含多个IP地址&#xff0c;其中第一个通常是原始的客户端IP。 以下是一个Flask示例代码&#xff0c;展示了如何获取原始的客户端IP地址&#xff1a; from flask import…

生成式AI和LLM如何应用

承认自己是普通人&#xff0c;我们只要会用就行了。 没有Machine Learning&#xff0c;也没有Deep Learning&#xff0c;让95%的普通码农都会用大模型&#xff0c;至于底层原理&#xff0c;就让那5%的精英去学吧。 这是“Generative AI with Large Language Models”课程的学…

xss初识(xss-lab)

XSS跨站脚本 XSS漏洞概述 XSS被称为跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&#xff0c;由于和CSS&#xff08;Cascading Style Sheets&#xff09; 重名&#xff0c;所以改为XSS。 XSS主要基于javascript语言完成恶意的攻击行为&#xff0c;因为javascri…

前端代码打包教程

一、 首先解压并进入源码包中&#xff0c;源码文件是下载的完整版安装包的 view/ 目录下,平台后台是 admin.zip ,商户后台是 mer.zip , H5/公众号/小程序是 uniapp.zip ,2.0级以上版本还有客服的源码包&#xff1b; 二、 打包&#xff0c;移动端和后台的打包方式不同 平台后台…

PyTorch(一)模型训练过程

PyTorch&#xff08;一&#xff09;模型训练过程 #c 总结 实践总结 该实践从「数据处理」开始到最后利用训练好的「模型」预测&#xff0c;感受到了整个模型的训练过程。其中也有部分知识点&#xff0c;例如定义神经网络&#xff0c;只是初步的模仿&#xff0c;有一个比较浅的…

力扣456.132模式

力扣456.132模式 单调栈 维护单调递减的栈用k维护‘2’&#xff0c;每次出栈就更新**&#xff08;保证栈中元素始终大于k&#xff09;**当出现nums[i] < k时 说明存在‘1’又因为栈中存在‘3’因此就存在132模式序列 class Solution {public:bool find132pattern(vector&…

C语言C99标准、C11标准新增加的特性

C语言标准 C语言从其诞生至今&#xff0c;经历了多个标准的更新&#xff0c;主要标准包括&#xff1a; C89/C90 (ANSI C / ISO/IEC 9899:1990)&#xff1a;这是C语言的第一个官方标准&#xff0c;由ANSI于1989年发布&#xff0c;后被ISO采纳为国际标准&#xff0c;发布于1990年…

echarts+vue2实战(一)

目录 一、项目准备 二、(横向分页)柱状图 2.1、动态刷新 2.2、UI调整 2.3、分辨率适配 三、(竖向平移)柱状图 3.1、平移动画 3.2、不同数值显示不同颜色 四、(下拉切换)折线图 4.1、切换图表和分辨率适配 4.2、UI调整 五、(三级分类)饼图 5.1、数据切换 六、圆环…

使用Tkinter创建带查找功能的文本编辑器

使用Tkinter创建带查找功能的文本编辑器 介绍效果代码解析创建主窗口添加菜单栏实现文件操作实现查找 完整代码 介绍 在这篇博客中&#xff0c;我将分享如何使用Python的Tkinter库创建一个带有查找功能的简单文本编辑器。 效果 代码解析 创建主窗口 import tkinter as tkcl…

Offset Explorer 连接SASL PLAIN鉴权的Kafka

1、填写Kafka信息 2、配置鉴权信息 Security 选择 SASL PLAINTEXT JAAS Config 配置账号密码 org.apache.kafka.common.security.plain.PlainLoginModule required username"账号"password"密码";

[Vulnhub] Troll FTP匿名登录+定时任务权限提升

信息收集 IP AddressPorts Opening192.168.8.104TCP:21,22,80 $ nmap -sC -sV 192.168.8.104 -p- --min-rate 1000 Nmap scan report for 192.168.8.104 (192.168.8.104) Host is up (0.0042s latency). Not shown: 65532 closed tcp ports (conn-refused) PORT STATE SER…

openh264 宏块级码率控制源码分析

openh264 宏块级码率控制函数关系 宏块级核心函数分析 WelsRcMbInitGom函数 功能&#xff1a;openh264 码率控制框架中宏块级码率控制函数&#xff0c;根据是否启用GOM QP来决定如何设置宏块的QP值&#xff0c;以控制编码的质量和比特率。原理过程&#xff1a; 函数参数&…

“打造智能售货机系统,基于ruoyi微服务版本开源项目“

目录 # 开篇 售货机术语 1. 表设计说明 2. 页面展示 2.1 区域管理页面 2.2 合作商管理页面 2.3 点位管理页面 3. 建表资源 3.1 创建表的 SQL 语句&#xff08;包含字段备注&#xff09; 1. Region 表 2. Node 表 3. Partner 表 4. 创建 tb_vending_machine 表的 S…

学习java第一百零六天

Spring的后置处理器 BeanPostProcessor&#xff1a;Bean的后置处理器&#xff0c;主要在bean初始化前后工作。 InstantiationAwareBeanPostProcessor&#xff1a;继承于BeanPostProcessor&#xff0c;主要在实例化bean前后工作&#xff1b; AOP创建代理对象就是通过该接口实现…

用LangChain调用Ollama的时候一个小问题

说来让人无语&#xff0c;简单记录一下。安装好Ollama后&#xff0c;我们通常通过访问http://127.0.0.1:11434来测试其是否正常&#xff0c;通常会出来“Ollama is running”&#xff0c;然后我习惯性地从Chrome把地址拷贝到VS Code&#xff0c; oembed OllamaEmbeddings(bas…

【启明智显产品介绍】Model3C工业级HMI芯片详解专题(一)芯片性能

【启明智显产品介绍】工业级HMI芯片Model3C详解&#xff08;一&#xff09;芯片性能 Model3C 是一款基于 RISC-V 的高性能、国产自主、工业级高清显示与智能控制 MCU&#xff0c;配置平头哥E907&#xff0c;主频400MHz&#xff0c;强大的 2D 图形加速处理器、PNG/JPEG 解码引擎…

【Conda】修改 Conda 默认的虚拟环境位置

文章目录 问题描述分析与解决查看默认安装位置修改 .condarc 文件修改权限 参考资料 问题描述 Conda 的虚拟环境默认安装在 C 盘。时间久了&#xff0c;C 盘上的内存会被大量占用&#xff0c;影响电脑性能。于是想到修改虚拟环境的默认存放位置&#xff0c;改到自定义的位置。…

找不到d3dx9_43.dll无法继续执行代码的几种解决方法

在工作或生活使用电脑都会遇到丢失dll文件应用无法启动的情况&#xff0c;比如你安装完一款你最喜欢的游戏在启动的时候提示系统缺少d3dx9_39.dll、d3dx9_40.dll、d3dx9_41.dll、d3dx9_42.dll、d3dx9_43.dll、xinput1_3.dll 文件而无法正常游戏&#xff0c;或你在工作的时候安装…

分享HTML显示2D/3D时间

效果截图 实现代码 <!DOCTYPE html> <head> <title>three.jscannon.js Web 3D</title><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,initial-scale1,maximum-scale1"><meta n…

图神经网络学习笔记

文章目录 一、图神经网络应用领域分析二、图基本模块定义三、邻接矩阵的定义四、GNN中常见任务五、消息传递计算方法六、多层GCN的作用七、GCN基本模型概述八、图卷积的基本计算方法九、邻接的矩阵的变换十、GCN变换原理解读 本笔记参考自b站up主小巴只爱学习的图神经网络教程 …