第一节课,两个简单的题,一些零散的知识点
一、读入
相关博客
1.cin 遇到空格,回车会停下
2.cin.getline(s,n) 接收n-1个字符到s中,包括空格(属于istream流)
3.getline(cin,s) 读字符串到s(属于string流,注意头文件)
4.cin.get(…) 可读字符,可像2那样读字符串
二、string
三、iomanip
(注意:设置一次后续输出格式都一样,除非再设置或取消)
1.setprecision()函数
可以设置输出有效数字个数(默认有效位为6)
如果和fixed操作符连用,变成设置小数点后几位
2.setw()函数
设置域宽,并用空格填充
默认右对齐,可以用left操作符设置左对齐
3.可用setfill()函数改变填充的字符,如setw(10)<<setfill('*')
4.setiosflags
相关连接
它是包含在命名空间iomanip 中的C++ 操作符,该操作符的作用是执行由有参数指定区域内的动作。
上面的fixed,left都是其参数之一
标准写法:setiosflags(ios::XXX)
cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2); 意思是输出一个右对齐的小数点后两位的浮点数。
#include <iostream>
#include <string>
#include <iomanip>//输出控制
using namespace std;
/*int main()
{
//cout<<setiosflags(ios::left)<<setw(5)
cout<<left<<setw(5)<<"abc"<<"123ii"<<endl;
}*/
/*
int main()
{ //直接cin会遇到空格停下
//法1
string s;//不用括号,是个容器类
getline(cin,s);//getline是string流,要用string头文件和容器类
//法2
char a[101];
cin.getline(a,101);//这是istream流,不用string,且上面string类型的s变量它也不能读入
//
cout<<a<<endl;
cout<<a<<endl;
cout<<a<<endl;
return 0;
}*/
int main()
{
double r;
cin>>r;
cout<<"Area: "<<left<<setw(20)<<fixed<<setprecision(6)<<3.14*r*r<<endl;
//setw设置域宽,默认右对齐,要加left左对齐
//fixed+setprecision控制输出小数点后几位。单独setprecision控制几位有效数字
cout<<"Perimeter: "<<right<<setw(20)<<setprecision(2)<<2*3.14*r<<endl;
//如无right取消left,则后续所有域宽都会左对齐
return 0;
}