输入输出
getline函数
当cin读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白符的时,它将停止读取。为了绝决这个问题,可以使用getline函数进行输入
getline函数如下:
getline(cin,inputLine)
其中cin是正在读取的输入流,而inputLine是接收输入字符串的string变量的名称。
代码演示:
#include<iostream>
using namespace std;
int main(){
//将一行字符串输入到一个字符串中
string str;
cout<<"请输入一行字符串"<<endl;
getline(cin,str);
cout<<"输出:"<<str;
return 0;
}
结果:
### string
#include<iostream>
#include<sstream>
using namespace std;
//任意类型转换
template<typename out_type, typename in_value>
out_type convert(const in_value t){
stringstream s;
s<<t;
out_type k;
s>>k;
return k;
}
int main()
{
//创建一个stringstream对象
stringstream ss;
//输出
int x=97;
ss<< x;
//输入
char ch;
ss>> ch;
//清空
ss.str("");
//调用方法
int n=100;
string str=convert<string,int>(n);
cout<<str;
}
日期类问题的模板
#include<iostream>
using namespace std;
const int Y=0,w=6; //Y为起始年,Y年的第一天是星期w
bool rn(int y){//判断闰年
return (y%4==0 && y%100!=0) || y%400==0;
}
int main(){
int H[20]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //储存每月的天数
for(int i1=Y;1;++i1){//年
for(int i2=1;i2<=12;++i2){ //月
H[2]=rn(i1) ? 29 : 28; //若当年为闰年则将2月的天数改为29;
for(int i3=1; i3<=H[i2] ;++i3){ //日
//一天天地遍历
}
}
}
return 0;
}
//1799-7-16