OJ在线编程小技巧记录_c++

OJ在线编程常见输入输出练习场。

OJ在线编程常见输入输出练习场https://ac.nowcoder.com/acm/contest/5657#question

1-注意事项:

  1. #include<bits/stdc++.h> 通用的库函数。有了它,别的也不需要了。
  2. 如果输入int数字,系统并不能识别输入的是字符串还是int,

所以对于复杂输入,可以考虑用字符串来读取,然后用ascii码来修正。
‘0’ . . . ‘9’ : 48 . . . 57
‘A’ . . . ‘Z’ : 65 . . . 90
‘a’ . . . ‘z’ : 97 . . . 122

  1. 求a的b次方pow(a,b)。 a^b,在c++代表位运算。
  2. 重要的读取函数
int a,b; string s0;  

cin>>a>>b;    读取两个字符。

getline(cin,s0);  读取一行所有字符到s0,包括空格字符。
cin>>s0;读取字符,但是遇到空格和换行符会停止。

if (cin.get()=='\n') {}; 逐个读取字符,判断是否读到换行符。

while(cin>>a) { }不定长的输入。操作。

2-一些读取例子

类型1:读取输入元素数量较少 ,适合int,string,double,float

类型1-1:读取输入两个整数
int a,b;
cin>>a>>b;

类型1-2:读取多行数组,每行元素较少,为2int a,b;   vector<int> v;
while(cin>>a>>b){
v.push_back(a);
v.push_back(b)  读取数字放进vector中。
}

类型2-:读取输入数字数量未知。

类型2-1:一次性读取多个值
while(cin>>a){
v.push_back(a) ;
}

类型2-2:读取输入多行数字,每行数字的数量不一。
```cpp
vector<int>v;vector<vector<int>> vv;int a;

while(cin>>a){
v.push_back(a) ;
if(cin.get()=='\n'){ vv.push_back(v);}
v.clear();
}

类型3:读取字符串,每行字符串数量未知,以","隔开。
思路:每次读取一行,然后找逗号重建子字符串。

string s0,s1; vector<string>v;
while(cin>>s0){
for(int i=0;i<s0.size();i++){ 
	if(s0[i]!=','){s1+=s0[i];}
	else {  v.push_back(s1);s1.clear();};
}
v.clear();

类型4: 读取带空格的字符串,

string s;
getline(cin,s);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值