ACM输入接口合集

Arduino Uno与RedBoard硬件对比:从USB接口到芯片选型的深度解析 在嵌入式开发与电子制作领域,微控制器开发板是连接软件与物理世界的核心桥梁。其工作原理基于将代码逻辑转化为硬件可执行的信号,通过GPIO引脚与传感器、执行器等外围设备交互。这一技术价值在于极大降低了硬件开发门槛,使开发者能快速实现物联网、智能家居、机器人等原型验证。应用场景广泛覆盖教育、创客、工业控制及产品原型开发。本文聚焦于Arduino生态中两款经典开发板——Arduino Uno与SparkFun RedBoard,通过对比其USB接口类型、USB转串口芯片选型(如FTDI FT231X与ATmega1 阅读详情

输入形式一

输入解释:第一行代表输入操作的次数。后续分别进行各自操作的输入。操作分为“1”和“2”,“1”代表插入数据,后面是名字,以及当前姓名所关注内容的数量,因此接下来输入关注内容的名称。以1 Alice 2为例,1代表操作类型,Alice代表姓名,2代表关注的数量,因此接下来输入的是Zoom,Apple也是Alice所关注的内容。“2”代表查找操作,只输入姓名。

代码

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
    int pnums = 0;
    // 获取操作次数
    cin >> pnums;
    // ignore 代表上一个输入截止,上一个参数不再接收参数
    cin.ignore();
    while (pnums--)
    {
        int ptype = 0;
        // 获取操作 类型
        cin >> ptype;
        // 这里 通过 忽略一个空格 来结束上一个输入
        cin.ignore();
        if (ptype == 1)
        {
            // 获取 用户名字
            char temp;
            string namedata;
            while (cin.get(temp) && temp != ' ')
            {
                namedata.push_back(temp);
            }
            // 获取用户关注内容分数量
            int contentsNum = 0;
            cin >> contentsNum;
            cin.ignore();
            // 输入关注 内容
            char data[100];
            cin.getline(data, 100);
            vector<string> contents(contentsNum);
            int tempnums = 0;
            for (auto& i : data)
            {
                if (i == ' ')
                {
                    tempnums++;
                }                    
                else if (i == '\0')
                    break;
                else
                {
                    contents[tempnums] += i;
                }
            }
            cout << "输出所获得的信息:" << endl;
            cout << "操作类型:" << ptype <<endl;
            cout << "客户名字:" << namedata << "  客户关注内容:";
            for (auto& i : contents)
            {
                cout << " " << i;
            }
            cout << " " << endl;
        }
        else if (ptype == 2)
        {
            char temp;
            string namedata;
            while (cin.get(temp) && temp != '\n')
            {
                namedata.push_back(temp);
            }
            cout << "输出所获得的信息:" << endl;
            cout << "客户名字:" << namedata << endl;
        }
    }
    return 0;
}

读取形式二 

输入未知长度的数组

    vector<int> arr;
    int temp2;
    while (cin >> temp2)
    {
        arr.emplace_back(temp2);
        if ('\n' == cin.get())
        {
            break;
        }
    }

 但是有一次测试,会出现bug,检测不到回车,尤其是输入长度不断增加时,不知道系统测试的时候是否会出现这种情况

cin用法总结

首先使用cin读取输入参数的方式有 

1.cin >> [char,int,float,string],结束标志有三种,空格;tab;换行;代表当前输入结束。

int main()
{
    int a = 0;
    float b = .0;
    char c = '\0';
    int a2 = 0;
    cin >> a >> b >> c >> a2;
    cout << "a:" << a << " b:" << b
        << " c:" << c << " a2:" << a2 << endl;
    int d = 0;
    if (!(cin>>d))
        cout << " 输入 false" << endl;
    else
        cout << " 输入 true" << endl;
    int i = 4;
    while (cin >> d && i--)
    {
        cout << "d:" << d << endl;
    }
    return 0;
}

 1.1绿色框测试目的是测试输入的类型,分别测试tab和空格,都不会终止输入,输入回车就会终止输入,可以看到a2没有输入上值。

1.2黄色框测试的目的是判断输入时是真还是假,从结果可以看出输入值是真。

1.3紫色框测试的目的是测试连续输入,可以看出空格和tab都不会中断当前输出,但是回车之后会输出已经输入的结果,但是次数没结束,因此再输入416之后才结束。

1.4读取string类型时,只有遇到回车、tab和空格才会终止读取。

 总结:

1)cin>> 等价于 cin.operator>>(),即调用成员函数 operator>>() 进行读取数据。

 2)当 cin>> 从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>> 会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>> 不做处理。(绿色框和紫色框均可以验证)

2.cin.getline(字符数组名,字符个数,结束标志),读取一行输入。

第一个参数是要存储字符串的数组的名称。第二个参数是数组的大小。第三个当第三个参数省略时,系统默认为'\0'。

当 cin.getline 语句执行时,cin 读取的字符数将比该数字少一个,为 null 终止符留出空间。直到它读取至最大指定的字符数,或直到按下了回车键,将停止读取,并且将缓冲区的内容删除。因此遇到 ‘\n’ 时终止,并且将 ‘\n’ 直接从输入缓冲区中删除掉,不会影响下面的输入处理。

int main()
{
    char a;
    char b[5];
    cin.getline(b, 5);
    cin.get(a);
    cout << "b:" << b << " a:" << a << endl;
}

但是输入越界时,cin.get()会无法继续接收输入(左图所示),而没有越界时,回车之后,cin.get()可以继续接收输入字符。。 

3.cin.get(),有四种重载形式

int get();
istream& get(char& var);
istream& get( char* s, streamsize n );
istream& get( char* s,  streamsize  n, char delim);

 整体来说与cin.getline没有太大的区别。

cin.get() 从输入缓冲区读取单个字符时不忽略分隔符,直接将其读取

cin.get() 的返回值是 int 类型,成功则返回读取字符的 ASCII 码值。

cin.get(char var) 如果成功返回的是 cin 对象,因此支持链式操作,如cin.get(b).get(c)

4.条件状态

参考文献:

C++ cin 详解之终极无惑_恋喵大鲤鱼的博客-优快云博客_c++ cin

C++ cin.getline用法详解 (biancheng.net)

2025美团秋招技术岗第二批笔试复盘:题型考点与避坑指南 校招笔试是应届生迈入大厂技术岗的第一道门槛,其考察逻辑往往不是单一算法能力,而是计算机基础、编程实现与工程思维的复合校验。从数据结构中的哈希表、前缀和,到计算机网络里的TCP握手、HTTP状态码,再到操作系统、数据库与Linux命令,每一类知识点都在用场景化题目检验候选人的原理掌握程度。理解这些概念背后的运行机制,并举一反三应用到实际题目中,是稳定发挥的前提。美团秋招技术岗的第二批笔试恰逢投递高峰,竞争激烈,题型明确且套路固定:选择题覆盖基础广度,编程题则按难度梯度分层。掌握ACM模式输入输出、合理分配时间 阅读详情

相关推荐

从Google CHI 2023看人机交互前沿:负责任AI、跨设备体验与交互新模态

人机交互(HCI)是研究人与计算机系统之间信息交换原理与方法的交叉学科,其核心在于通过界面设计优化用户体验。随着人工智能和物联网技术的发展,HCI领域正从传统的图形用户界面(GUI)向更自然、智能和情境感知的交互模式演进。这一演进的技术价值在于,它能将强大的计算能力无缝融入人类活动,通过增强而非替代人类能力来提升效率与创造力。当前,负责任的人工智能与跨设备连续性体验已成为关键应用场景,它们要求系统在提供智能服务的同时,确保公平、透明并尊重用户隐私与控制权。例如,在AI辅助决策场景中,通过可视化界面解释模型决

weixin_30457465的博客 705

acm/ncm/ecm

通过dmesg内核消息查看设备连接信息及驱动匹配情况usb wmc无线移动通信,usb上网卡(连接移动通信网络)ncm是ecm协议的改进版,将多个以太网包组成一个ntb包在usb总线上传输,提高带宽利用率将多个报文集成到一个buffer中,即实现一次收发多个数据报文(具体收发多少个需要参见cdc_ncm_bind -> cdc_ncm_setup)如果是QMICM建立的data call,不走router的,所以它的IP地址获得的是公网IP。因此流控制可以控制数据传输的进程,防止数据的丢失。

weixin_43490398的博客 3075

算法竞赛必备:高效可靠的代码模板库构建与应用指南

在算法竞赛和编程能力认证中,代码模板是提升解题效率与可靠性的关键工具。其核心原理在于将高频算法与数据结构封装为可复用的模块,通过标准化接口降低实现复杂度。从技术价值看,精心设计的模板能显著减少调试时间,帮助选手将精力集中于问题建模与算法设计。应用场景广泛覆盖在线判题系统(OJ)、国际大学生程序设计竞赛(ACM)、信息学奥林匹克(OI)等各类编程赛事。本文以并查集和Dijkstra算法为例,深入解析模板的设计要点与避坑指南,并分享如何基于常见错误排查与性能微调,构建个人化的高效模板库,从而在实战中实现快速适配

weixin_30402343的博客 423

ACM常用接口整理 (模板)

0. C++常用接口 1. 二分查找左边界 #include &amp;amp;amp;lt;cstdio&amp;amp;amp;gt; #include &amp;amp;amp;lt;cstring&amp;amp;amp;gt; #include &amp;amp;amp;lt;iostream&amp;amp;amp;gt; #include &amp;amp;amp;lt;algorithm&amp;amp;am

一花一世界 一叶一菩提 1125

算法竞赛核心代码模板:从原理到实战的避坑指南

在算法与数据结构的学习中,理解核心概念和原理是构建高效解决方案的基础。以并查集为例,它通过路径压缩和按秩合并优化,将动态连通性问题的操作均摊至接近常数时间复杂度,其技术价值在于为图论中的连通分量、最小生成树等算法提供了高效底层支持。树状数组则利用二进制低位特性,以简洁的代码实现了高效的单点更新与区间查询,是处理前缀和类问题的利器。这些基础数据结构与算法,在算法竞赛、在线评测系统(OJ)等高压应用场景中,能显著提升编码效率与准确性。本文聚焦于将这些经过实战检验的代码模板进行系统梳理,涵盖Dijkstra最短路

chuange6363的博客 434

算法竞赛常用代码模板:从原理到实战的可靠工具箱

在算法竞赛和编程能力测试中,高效可靠的代码实现是成功的关键。数据结构与算法作为计算机科学的核心基础,其经典实现如并查集、线段树、最短路径算法等,不仅是解决特定问题的工具,更是理解计算机如何高效处理数据的窗口。这些模板的价值在于,它们将复杂的算法原理封装成可重用的代码模块,极大地提升了开发效率和代码正确性。在OI、ACM-ICPC、CSP等高压竞赛环境中,一份经过精心设计、注重边界处理和现场可重现性的模板,能帮助选手将精力集中于问题建模而非底层实现。本文聚焦于构建一个面向实战的“工具箱”,其中的并查集、Dij

weixin_34043301的博客 407

串口名称笔记

ttySAC* —— 对应的是电脑端的ttyS*,即电脑端的串口COM* ttyACM* —— Abstract Control Model USB虚拟串行口CDC ACM就是USB Communication Device Class - Abstract Control Model MTK国产手机和部分国外手机的系统,黑手机系统

迷彩狼的博客 736

算法竞赛代码模板:从Dijkstra到并查集,构建你的编程武器库

在算法与数据结构的学习和工程实践中,代码模板是提升开发效率和代码可靠性的重要工具。其核心原理在于将经过验证的经典算法实现封装成可复用的模块,通过标准化接口降低重复实现成本。从技术价值看,精心设计的模板不仅保证了算法的正确性和鲁棒性,还能显著减少边界条件处理等常见错误。在应用场景上,无论是信息学奥赛(OI)、ACM竞赛,还是日常的算法刷题和工程开发,模板都能帮助开发者将精力聚焦于问题建模而非底层实现。本文以Dijkstra最短路径算法和并查集这两个高频算法为例,深入探讨了模板的设计原则、实现要点及调试技巧,为

weixin_34342992的博客 314

acm输入和输出

#include using namespace std; int main() { int a, b; while (cin >> a >> b) cout

WF19980719的博客 1009

Acm编程接口实现压缩

利用Windows的ACM(Audio Compression Manager)编程接口实现声音数据的压缩。

高通/MTK平台ACM串口驱动(USB转ACM串口)

高通平台、MTK平台USB转ACM串口,WIN7无法识别ACM串口,安装这个串口驱动即可(64位)

2019牛客四模编程题复盘:动态规划、字符串与贪心算法精讲

在计算机求职与技术面试中,算法与数据结构始终是核心基础。从数组处理、双指针到动态规划、字符串操作与贪心模拟,这些知识点构成了笔试与面试的高频考点。理解它们的原理和适用场景,能有效提升解题效率与代码质量。以2019年牛客模拟考试第四场编程题为样本,复盘典型题目的解法、边界条件与ACM模式下的应试技巧,并给出刷题策略与时间管理建议,适合准备校招笔试的读者参考。

weixin_34116482的博客 318

MounRiver避坑实录:手把手迁移CH32V307 EVT工程到自定义目录

本文详细记录了将沁恒CH32V307的EVT工程迁移到自定义目录的完整流程与避坑指南。针对MounRiver Studio的虚拟链接机制,重点讲解了如何清理旧配置、重新设置头文件路径、链接脚本等关键步骤,帮助开发者创建独立、可维护的MCU项目工程。

uber9的博客 244

51c大模型~合集110

为了解决这一问题,在稠密化过程中,我们对容易引起退化和梯度集中的具有极端延展率的高斯面片进行了筛选,并对其增殖过程进行了限制,从而在不牺牲性能的情况下有效稳定了训练过程,保障了优化过程的顺利进行。大规模场景的重建往往还意味着显著的训练开销,要重建 1.97 平方千米的区域会产生接近两千万的高斯点,这意味着 4.6G 的存储以及 31.5G 的显存开销,以及超过三小时的训练时长。站在 AI 研究者的角度,得到了《苦涩的教训》,意味着在总结教训的过程中明确了什么是「更好」的。第二类则瞄准了相对复杂的问题。

whaosoft~aiotの开发板商城 2603

ICESat-2数据下载的两种方法

ICESat-2数据下载

weixin_46341898的博客 2900

保姆级教程:QGC地面站Vehicle Setup全模块配置详解(从固件升级到安全设置)

本文提供QGC地面站Vehicle Setup全模块配置的保姆级教程,涵盖从固件升级到安全设置的完整流程。详细解析二次开发环境准备、传感器校准、飞行模式配置等关键步骤,帮助用户快速掌握无人机配置技巧,确保飞行安全与性能优化。

weixin_28726671的博客 387

python获取字典长度_PYTHON 写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者...

2015 ACM Syrian Collegiate Programming ContestA. My Friend of Misery 计算出答案的上下界即可. 时间复杂度$O(n)$. #include using namespace std; ...oracle小知识总结1,表列的五种约束 not null, unique,primary key, foreign key, check 2...

weixin_39598584的博客 946

Transformer在BEV感知中的统治地位

Transformer在BEV感知中的统治地位 ,人工智能,计算机视觉,大模型,AI,本文围绕 Transformer 在 BEV 感知中的统治地位展开,介绍了 Transformer 的基础原理,如自注意力、多头注意力机制等,以及 BEV 感知的概念、任务与挑战。阐述了 Transformer 在 BEV 感知中的技术优势,包括全局建模、灵活特征融合和长距离依赖捕捉能力,还介绍了典型架构、代码示例及在自动驾驶目标检测等领域的应用案例。同时,评估了其性能,提及优化方法,并展望了与其他技术融合、端到端系统等…

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

Linux基础指令:从零开始掌握命令行(合集)

每一行命令的执行,都是对确定性的一次祈祷。今天聊 Linux 基础指令。

kiracrimson的博客 354

lammps案例:Cu三点弯曲模拟

大家好,我是小马老师。 本文分享一个Cu弯曲的案例。 本案例参考三点弯曲实验,三点弯曲试验是将试样放在弯曲装置上,在试样上加载进行弯曲试验,直到达到规定的弯曲程度或发生断裂。 模拟原理是在z方向固定两侧端点,在x和y方向不固定,模拟左右两个支撑点,中间压块向下运动实现弯曲。 初始结构: 运行结果为: 模拟的重点是使用fix setforce命令压住左右两端,使其不能沿z轴上下移动,但是又不能在xy方向限制其移动。 压块的运动方式比较简单,给其一个下压的速度即可。 为防止压块变形,使用setforce命

lammps_jiayou的博客 2279

Open3D 实现CSF布料模拟算法【2025最新版】

CSF布料模拟算法在open3d模块下的实现,博客长期更新,本文最近更新时间为:2025年1月16日。。

点云侠的博客 5746

华为Java岗面试通关指南:底层原理与手撕代码实战

Java基础、集合框架、JVM与并发编程是大厂面试的核心考区,也是很多候选人背了答案却扛不住追问的重灾区。真正高效的备考方式,不是死记硬背面试题,而是理解技术底层的设计逻辑——例如HashMap的树化阈值为什么是8、Spring三级缓存如何解决循环依赖、线程池参数如何结合业务场景计算。针对华为通用软件Java岗,面试重点覆盖考点地图、算法手撕、项目深挖与系统设计四个维度,其中ACM模式的代码练习、线上OOM排查思路以及分布式锁等场景化题目尤为关键。本文结合2025年高频趋势,拆解面试官追问链路,帮助求职者从

weixin_33938733的博客 493

自监督学习原理与代码实战案例讲解

自监督学习原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 1. 背景介绍 1.1 自监督学习的起源与发展 1.1.1 监督学习的局限性

AI天才研究院 624

搜狗前端秋招编程题全解析:考点拆解与避坑实战指南

在互联网校招中,前端笔试与后端算法考察有显著差异,它更聚焦于JavaScript语言特性、数据结构基础与工程化代码习惯的综合运用。从字符串处理、数组去重到防抖节流、经典算法,每类题型都在检验开发者能否在脱离框架与调试工具的情况下,写出健壮且高效的代码。真正的分水岭往往不在核心逻辑,而在空数组、特殊字符、深层嵌套等边界条件的处理。掌握事件循环、原型链、闭包等底层原理,理解ACM模式与核心代码模式的差异,并学会合理分配答题时间,是拿到高分的必备能力。这类编程题映射出日常业务中的状态管理、列表渲染与异步流程控制,

weixin_32570803的博客 247

lammps模拟技巧:高熵合金势函数设置三种方法

大家好,我是小马老师。 本文继续介绍lammps模拟中的势函数设置方法。 在前面的文章中,介绍过高熵合金的建模:高熵合金建模 高熵合金包含的原子数较多,势函数的设置相对复杂,在平时一对一的咨询中,这种问题也相对较多。 下面介绍三种高熵合金势函数设置方法。 1.下载专用势函数 下面的网站包含了大多数原子的势函数: https://www.ctcms.nist.gov/potentials/ 如需下载包含Fe原子的势函数,直接点Fe: 出现势函数列表: 比如Al-Co-Cr-Fe-Ni就是高熵合金AlCoC

lammps_jiayou的博客 8962

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ChatGPT写论文总被拒?揭秘学术写作Prompt的3大隐性陷阱:语言幻觉、逻辑断层与引用失准(附MIT实验室验证清单)

ChatGPT写论文被拒?本指南破解ChatGPT学术写作Prompt三大隐性陷阱:语言幻觉、逻辑断层与引用失准,基于MIT实验室验证清单提供可复用的Prompt优化策略,适用于社科、STEM领域论文初稿与润色。方法实证有效,值得收藏。

AlgoInk的博客 270

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: LeetCode第一天(实际第二天)
FlyingFish7
博客等级 码龄9年 7粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值