天梯赛复习--输入输出

天梯赛字符处理很多,比如时间,整数与字符互转(+-'0')

 

格式控制以及输入1e5以上,用scanf和printf、putchar

无空格,连续字符串用cin省事

inline int read()
{
    int x = 0;
    char c = getchar();
    bool flag = 0;
    while(c < '0' || c > '9'){if(c == '-')flag = 1;c = getchar();}
    while(c >= '0' && c <= '9'){x = (x << 3) + (x << 1) + (c ^ 48);c = getchar();}
    return flag ? -x : x;
}

 

①scanf、printf格式控制

scanf接受空格并停止,cin不接受只作为停止标志!

scanf内,加空格,:

printf控制前加0或小数点保留,和四舍五入的写法

 

包括空格,只接受一整行

gets  (有些c++版本不支持,c反而支持)

getline(cin,c),  string类型

cin.getline(c,150)   150为数组大小

 

附:  char型空格的处理相当烦人。

如char数组初始化,其实为0不是空格,  古风排版-PTA

两个字符串,前者为空格需要吃掉,A+B 可能AB不合法 -PTA

 

这道题代码

char a[1005],b[1005];
   //cin>>a>>b;//这样如果没法考虑a是空格 
   scanf("%s",a);
    getchar();
    cin.getline(b,1005);

 

③同类型多次输入,消除回车/空格

getchar()消除回车

 

④读入结束

EOF或cin

 

⑤对齐方式

#include <bits/stdc++.h>
#include<stdio> 
using namespace std;//题目输出可能不唯一!! 
int main()
{
int a,b;
scanf("%d:%d",&a,&b);//不接受空格和换行  
//getchar();//输入矩阵,cin后面则不用getchar,但出现回车都需要getchar吃回车 
string c;
//while(gets(c)!=NULL) 
//{
//	cout<<c<<endl;
//}
while(getline(cin,c))//接受一行包括空格 区别cin.getline 
{
	cout<<c<<endl;
}
//while(cin.getline(c,100))
//{
//} //限定字符 ,????
char d[100];
gets(d);//多一个输入消去回车 
//for(int i=0;i<c.size();i++)
//gets(d[i]);//不可以 
gets(d);             //接受回车和空格 ,一行 
while(gets(d)!=NULL) //貌似gets只适用于数组 
{
	cout<<d<<endl;
}
char e;
while((e=getchar())!=EOF)//接受单个字符 ,比scanf(%c)好在于空格不结束输入 
//gets(e);
for(int i=0;i<strlen(d);i++)
{
	if(d[i]%2==0)cout<<"YES"<<endl;//char也可判断奇偶 
	d[i]-=48;
	d[i]+='0';//转int 
	
}
printf("%0d:%0d",a,b);//补0 

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值