输入
- 可以利用一个字符变量吃掉输入的短横线(减号)
//输入2018-12-15
int year = 0, mon = 0, day = 0;
char sperator = '\0';
cin >> year >> sperator >> mon >> sperator >> day;
- 通过设置输入变量的类型来接受不同类型变量
char type = '\0';
float money = 0;
cin >> type>>money;
- 支持输入多行,且每输入一行即刻得到结果
while (cin.getline(c, 120)) {...}//将while函数紧接着写在main函数下面
//将输入的处理都写在while函数里面
int a;
while (cin >> a) {...}//处理多行单个数字
//如果想要函数停止,只需要设置关键字,如检测到输入为0
//if (a == 0)
// return 0;
- cin相关函数介绍
-
cin
/* 输入数字 */ using namespace std;//cin cout包含在工作空间std中 int a,b; cin>>a>>b;//第一个输入的数保存在a 第二个输入的数保存在b //这里默认空格,tab和回车是间隔符,会过滤掉 cin>>noskipws>>a>>b;//不想略过空白字符,那就使用 noskipws 流控制 //这时默认空格,tab和回车等不可见符为0 /* 输入字符串 */ char a[20]; cin>>a; cout<<a<<endl; //接受一个字符串,遇“空格”、“TAB”、“回车”都结束
-
cin.get()
/*cin.get(字符变量名)可以用来接收字符*/ char ch; ch=cin.get(); //或者cin.get(ch); cout<<ch<<endl; /*cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格*/ char a[20]; cin.get(a,20); //字符数目包括结束符‘/0’,即19个字符+‘/0’ cout<<a<<endl; /*cin.get()用于舍弃输入流中的不需要的字符/ cin.get()//没有参数主要是用于舍弃输入流中的不需要的字符 //或者cin.get(a,20); 之后不使用a
-
cin.getline()
cin.getline(接受字符串m,接受个数5,结束字符) char m[20]; cin.getline(m,5); //m只接收4个字符+‘/0’ //当第三个参数省略时,系统默认为'\0' //可以接收空格等不可见字符作为一个字符 cin.getline(m,5,'a');//接收到‘a’或者接收满4个字符,取先满足的条件 //以‘a’为结束符,字符串中并不包含a,只包含a前面的字符 char m[3][20]; for(int i=0;i<3;i++) cin.getline(m[i],20); //支持二维数组的输入,这里的m[i]代表第i行
-
getline()
#include<string> //getline()需要添加头文件 //getline()和cin.getline()类似 //但是cin.getline()属于istream流,而getline()属于string流 string str; getline(cin,str);//接受一个字符串,可以接收空格并输出 //默认回车作为字符串结束符
输出
- 设置输出格式
#include <iomanip>
//输出number为保留两位小数点的浮点数
cout << fixed << setprecision(2) << number << endl;
- 输出时请活用setfill和setw 控制符。
include <iomanip.h>
//stew只对后面的字符有效,即加上‘a’一共输出8个字符,不足的字符用空格补上。
//所以‘s’与‘a’之间有7个空格
cout<<'s'<<setw(8)<<'a'<<endl;
//setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。
cout<<setfill('*')<<setw(5)<<'a'<<endl;
//‘a’前面有四个*