C++输入总结
总结下在编程题中的输入数据方法
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
string s;
// 注意,在VS中这里会报错,需要添加 #include<string>
// 因为在iostream里,对string只是声明,并没有定义。
cin>>s;
// 但是上面碰到空格会进行分段,如果想一次性输入整行;
// 会截断回车符。
// 如果没有读入字符,将返回false;
getline(cin,line);
//如果想使用自定义分隔符
getline(cin,line,delime);
while(getline(cin,tt,delime)){
process(tt);
}
// 注意 如果之前有cin,然后再进行getline之前,需要把cin没有处理的回车符处理掉,
// 也就是在getline之前加个
cin.get();
// 如果想从一个字符串里读取数据
#include<sstream>
string src("dasf");
string des;
stringstream ss(src);
getline(ss,des,delime);
}
字符串转数字,数字转字符串
#include <iostream>
#include <string>
using namespace std;
// string 里有 to_string()这个函数 参数可以是int,long,long long,unsigned long,float,double,long double;
int main(){
int a = 1;
long b = 12345;
unsigned int c = 23;
float d = 32.123;
double e = 12.1223;
cout<<to_string(a)<<" "<<to_string(b)<<" "<<to_string(c)<<" "<<to_string(d)<<" "<<to_string(e)<<endl;
return 0;
}
字符串转数字
两种方法,第一种就是调用string自带的stoi,stol,stoul,stoll,stoull,stof,stod,stold等。
第二种就是把字符串转换成stringstream,然后用>>进行读取
#include <iostream>
#include <string>
template<typename out_type,typename in_value>
out_type convert(const in_value& t){
stringstream stream;
stream<<t;
out_type result;
stream>>result;
return result;
}
int main(){
string a("1234");
string b("12.45");
cout<<stoi(a)<<" "<<stof(b)<<endl;
stringstream s1(a);
int a1;
s1>>a1;
cout<<a1<<endl;
//注意如果多个字符串进行输入到stringstream时,先clear一下,把缓冲区清空。
s1.clear();
float a2 = convert<float>(b);
cout<<a2<<endl;
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
不为人知的JavaScript自动分号插入机制( ASI )
JavaScript拥有自由的精神, ASI就是此精神的表现形式之一, ASI是 Automatic semicolon insertion 的缩写, 在许多语句后面可以省略分号, 当然很多小白还没有发现这一点...首先分号是必不可少的, 因为回车符号在词法分析阶段就被全部杀掉了(特殊作用域除外),所以有了ASI有些人会认为回车符也是分隔符,其实回车符就是空白符,没有任何意义.... ASI的引入方便了开发者的同时也带来了很多坑........ 本文介绍了自动插入分号机制在return语句中的例子,以及在es5标准下的相应规则。 楔子 之前一直写C,写了一段时间JavaScript之后一直很很好奇一个东西。在C和Java等语言里面,大括号的使用一般都是类似这样的 int main(args[]) { return 0; } 1 2 3 4 而到JavaScript里面则是这样写 function main(args){ alert("hello"); return 0; } 1 2 3 4 起始的大括号不独占一行了,觉得很疑惑,查了一些资料才知道,这是和JavaScript一个自动修复...
-
下一篇
(五)Java并发学习笔记--线程安全-同步容器
一、为什么会出现同步容器? 在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。 List、Set、Queue接口分别继承了Collection接口,Map本身是一个接口。 注意Collection和Map是一个顶层接口,而List、Set、Queue则继承了Collection接口,分别代表数组、集合和队列这三大类容器。 像ArrayList、LinkedList都是实现了List接口,HashSet实现了Set接口,而Deque(双向队列,允许在队首、队尾进行入队和出队操作)继承了Queue接口,PriorityQueue实现了Queue接口。另外LinkedList(实际上是双向链表)实现了了Deque接口。 像ArrayList、LinkedList、HashMap这些容器都是非线程安全的。 如果有多个线程并发地访问这些容器时,就会出现问题。 因此,在编写程序时,必须要求程序员手动地在任何访问到这些容器的地方进行同步处理,这样导致在使用这些容器的时候非常地不方便。 所以,Java提供了同步容器供用户使用。 二、Java中的同步容器类 在Java中,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,8上快速安装Gitea,搭建Git服务器