DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

最近在做题时发现了这样一个问题,有些题目的数据是以单行给出的,比如(2 3 -92 234 275 -7)这样的数列,用cin读取不太方便(cin一般以换行结束一个数据的输入),所以常规做法是将之转化为字符串再行处理,但是在已知数列长度的情况下可以用以下方法读取;

已知长度为N

for(i=0;i<N;i++)

cin>>a[i];

这种读取方法在实现上更方便(在一个新手看来,或许STL中有更好的方法不需要知道N)

---------------------------------------------

(不需要知道N)

再加点内容吧,要不然这篇也太水了点。。。

其实可以用cin>>noskipws读取所有字符

然后判断读入的字符是否是数字,如果是,那么把它放回到标准输入流,再以普通方式读取该数字,要用cin.putback();

具体可以这么写

while(cin>>c;){

if(isdigit(c))///isdigit()是标准库函数,<ctype>里还有很多非常方便的类似函数

cin.putback(c);放回去。。。

cin>>number;

}

结合其他ctype函数这个方法还可以用于其它输入,比如符号,回车等的判断和处理,效率上也没有明显下降

posted on   DoubleLi  阅读(1414)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2021-01-28 Zookeeper C API 指南六(异步 API 介绍)
2021-01-28 Zookeeper C API之接口描述
2021-01-28 再论SIP呼叫中的Call、Dialog和Transaction
2021-01-28 SIP 中的Dialog,call,session 和 transaction
2019-01-28 close_wait状态和time_wait状态(TCP连接)
2019-01-28 TCP连接状态详解及TIME_WAIT过多的解决方法
点击右上角即可分享
微信分享提示