c++中cin的错误输入锁

如果你定义了一个int型,那么当cin输入表达式的值是就会检测输入的是不是数字。如果程序发现用户输入了错误内容时,程序就会锁住cin,所以你就需要重置cin。我们可以利用这一特点来解决下面这道题


口算练习题

题目描述

王老师正在教简单算术运算。细心的王老师收集了 ii 道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如 5+85+8 的算式最好只要输入 55 和 88,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=135+8=13 以及该算式的总长度 66。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。

输入格式

第一行一个整数 ii。

接着的 ii 行为需要输入的算式,每行可能有三个数据或两个数据。

若该行为三个数据则第一个数据表示运算类型,aa 表示加法运算,bb 表示减法运算,cc 表示乘法运算,接着的两个数据表示参加运算的运算数。

若该行为两个数据,则表示本题的运算类型与上一题的运算类型相同,而这两个数据为运算数。

输出格式

输出 2×i2×i 行。对于每个输入的算式,输出完整的运算式及结果,第二行输出该运算式的总长度。

输入输出样例

输入 1

4
a 64 46
275 125
c 11 99
b 46 64

输出 1

64+46=110
9
275+125=400
11
11*99=1089
10
46-64=-18
9

说明/提示

【数据规模与约定】

对于 50%50% 的数据,输入的算式都有三个数据,第一个算式一定有三个数据。

对于所有数据,0<i≤50,运算数为非负整数且小于 10000。

解析:

  • 这个时候我们就可以利用cin的错误输入锁,来解决检测输入的是字符还是数字的问题啦
  • 我们将一个整型数字转化成字符串可以用stringstream io来进行转换,每次转换我们将其累加到我们最终的字符串中就大功告成啦!

代码参考:

#include<bits/stdc++.h>
using namespace std;
string s; 
stringstream io;
string  f(int a){ //由于该操作次数比较多,我们单拎出来变成一个函数方便调用io<<a,io>>s;io.clear();return s;
}
int main(){int n;cin>>n;char ch;while(n--){ string q;//存储最终输出的字符串int a,b,ans=0;//ans存储运算答案if(!(cin>>a)){cin.clear();cin>>ch>>a;}cin>>b;q+=f(a);if(ch=='a'){ans=a+b;q+='+';}else if(ch=='b'){ans=a-b;q+='-';    }else{ans=a*b;q+='*';}q+=f(b);q+='=';q+=f(ans);cout<<q<<endl;cout<<q.length()<<endl;}return 0;
}

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

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

相关文章

如何使用Langchain集成Kimi AI(Moonshot AI)

如何使用Langchain集成Kimi&#xff08;Moonshot AI&#xff09; 一、获取API密钥1. 注册账号2. 获取密钥 二、环境配置三、上手四、整合一下五、检验一下成果六、官方网站 一、获取API密钥 1. 注册账号 毕竟只有注册过帐号才能拿到key~ Moonshot 登陆 2. 获取密钥 用户中心…

前端开发模板Pear Admin Layui

目录 基本资料学习笔记04-Pear-Admin-Layui模板运行05-Pear-Admin-Layui-GIT方式代...06-Pear-Admin与Vue对比 & 07-Pear-Admin与Vue对比补充09-Pear-Admin-CRUD练习-数据库表创建12-Pear-Admin-CRUD练习-引入其它依赖 & 13-Pear-Admin-CRUD练习-三层架构以及常见配置 …

【ETL:概念、流程与应用】

ETL:概念、流程与应用 目录 什么是ETLETL的工作流程 2.1 数据抽取(Extract)2.2 数据转换(Transform)2.3 数据加载(Load)ETL的应用场景常见的ETL工具ETL的挑战与解决方法ETL与ELT的区别总结1. 什么是ETL ETL 是数据处理的流程,表示“抽取(Extract

翰鲸学术辅导:研究生学术之路的助力

近期又到了研究生开题之际&#xff0c;研二的学生们都深受论文困扰。不少学弟学妹在微信上询问我关于学术辅导机构是否值得报名的问题。在此&#xff0c;通过本期文章为大家科普学术辅导机构相关情况&#xff0c;并对我曾报名的翰鲸学术辅导进行简单测评&#xff0c;希望广大学…

计算机网络之HTTP协议

一、HTTP协议基本概念 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效&#xff0c;减少网络传输量。HTTP协议不仅保证计算机正确快速地传输超文本文档&#…

vue使用方法创建组件

vue 中 创建 组件 使用 方法创建组件 vue2 中 import vueComponent from xxxx function createFn(){const creator Vue.extend(vueComponent);const instance new creator();document.appendChild(instance.$el); }vue3 中 import { createApp } from "vue"; im…

关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法

关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c语法 说明(废话)问题解决方案问题1 case中不能定义变量多态函数动态传绑定的问题 总结 说明(废话) 用了这么多年的c&#xff0c;有些语法上的问题真的让人很难办&#xff0c;有的问…

MySQL中的行转列和列转行操作

MySQL是一款常用的关系型数据库&#xff0c;广泛应用于各种类型的应用程序和数据存储需求。在MySQL中&#xff0c;我们经常需要对表格进行行转列或列转行的操作&#xff0c;以满足不同的分析或报表需求。本文将详细介绍MySQL中的行转列和列转行操作&#xff0c;并提供相应的SQL…

新世联科技:NG2-A-7在DAC空气捕集提取CO2的应用

一、DAC空气捕集提取CO2的介绍 直接空气碳捕获&#xff08;Direct Air Capture&#xff0c;简称DAC&#xff09;是一种直接从大气中提取二氧化碳的技术。 二、DAC空气捕集提取CO2的前景 从大气中提取的这种二氧化碳可以作为循环经济的一部分以各种不同方式使用。未来&#xf…

面试题分享11月5日

1、JWT 数据结构 头部&#xff08;Header&#xff09;、负载&#xff08;Payload&#xff09;、签名&#xff08;signature&#xff09; 头部&#xff08;Header&#xff09;、负载&#xff08;Payload&#xff09;都是明文的&#xff0c;根据 base64URL 进行转化&#xff0c…

uni-app 封装图表功能

文章目录 需求分析1. 秋云 uchars2. Echarts 需求 在 uni-app 中使用图表功能&#xff0c;两种推荐的图表工具 分析 在 Dcloud市场 搜索Echarts关键词&#xff0c;会出现几款图表工具&#xff0c;通过大家的下载量&#xff0c;可以看到秋云这个库是比较受欢迎的&#xff0c;其…

详细解读个性化定制大杀器IP-Adapter代码

Diffusion models代码解读&#xff1a;入门与实战 前言&#xff1a;IP-Adapter作为Diffusion Models最成功的技术之一&#xff0c;已经在诸多互联网应用中落地。介绍IP-Adapter原理和应用的博客有很多&#xff0c;但是逐行详细解读代码的博客很少。这篇博客从细节出发&#xff…

PHP JSON 教程

PHP JSON 教程 PHP 是一种广泛使用的开源服务器端脚本语言,而 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。PHP 提供了多种函数和库来处理 JSON 数据,使得在 PHP 应用程序中解析和生成 JSON 数据变得非常容易。本教程将详细介绍 PHP 中 JSON 的使用方法…

数据采集之scrapy框架2

本博文使用自动化爬虫框架完成微信开放社区文档信息的爬取&#xff08;重点理解 scrapy 框架自动化爬 虫构建过程&#xff0c;能够分析 LinkExtractor 和 Rule 规则的基本用法&#xff09; 包结构目录如下图所示&#xff1a; 主要代码&#xff1a; &#xff08; items.p…

WAPI认证过程如何实现?

WAPI&#xff08;WLAN Authentication and Privacy Infrastructure&#xff09;认证过程是通过一系列步骤来实现的&#xff0c;以确保无线局域网&#xff08;WLAN&#xff09;中设备的合法性和数据传输的安全性。以下是WAPI认证过程的详细实现步骤&#xff1a; 一、认证前的准…

从零开始的LeetCode刷题日记:746. 使用最小花费爬楼梯

一.相关链接 题目链接&#xff1a;746. 使用最小花费爬楼梯 二.心得体会 这道题还是动规五部曲。 1.首先是dp数组及其下标的含义&#xff0c;dp记录了每层楼梯对应的爬的方法&#xff0c;每个下标存储每个对应楼层。 2.然后是递归公式&#xff0c;这里的递归公式就不是简单…

深⼊理解指针(2)

目录 1. const修饰指针及变量 2. 野指针 3. assert断⾔ 4. 指针的传址调⽤ 一 const修饰指针及变量&#xff08;const是场属性——不能改变的属性&#xff09; 1 const修饰变量 那怎么证明被const修饰的变量本质还是变量呢&#xff1f; 上面我们绕过n&#xff0c;使…

每日科技资讯:2024年11月06日【龙】农历十月初六 ---文末送书

目录 1.OpenAI因算力瓶颈暂缓GPT-5发布 合作芯片开发寻求突破2.现在&#xff0c;&#x1d54f; 允许被你屏蔽的人继续查看你的帖子3.硬刚Intel与AMD&#xff01;NVIDIA明年推出PC芯片4.苹果停止签署 iOS 18.0.1&#xff0c;不再允许从 18.1 降级5.Nvidia 加入道琼斯指数成份股 …

swoole扩展安装--入门篇

对于php来说&#xff0c;swoole是个强大的补充扩展。这是我第3次写swoole扩展安装&#xff0c;这次基于opencloudos8系统&#xff0c;php使用8.2。 安装swoole扩展首先想到的是用宝塔来安装&#xff0c;毕竟安装方便&#xff0c;还能统一管理。虽然获得swoole版本不是最新的&am…

layui xm-select的使用

一、文档 xm-select 二、使用 <div id"js-form-tags{$ke}{$index}" val"{$ke}"></div> <input type"hidden" class"selectkey" name"selectkey[]" value"{$ke}" /> function initSelect(id…