一、字符、字符串
- 字符
单个字符用char来定义 - 字符串
① 字符串用char a[]来定义一个字符数组,在字符数组的后面要有一个字符串结束符‘\0’来表示字符串的结束
②用string s 来定义一个字符串
二、常见输入输出函数
- 1、scanf()/printf()函数
- 输入/输出函数
- scanf()在输入字符串时,不读入空格和回车,在读入空格和回车时,输入结束
- printf()在输出时遇到第一个‘\0’结束
#include<iostream>
using namespace std;
int main(){
int a,b;scanf("%d","%d",&a,&b);printf("%d","%d",a,b);char str[15];scanf("%s",&str);
}
- 2、getchar(),
- 是一个输入流函数,它是把输入的字符以队列的形式放入缓冲区,包含输入的空格,直到用户按回车为止
- 常用来消除回车符的影响
- 3、putchar()函数
- 是向终端输出一个字符,参数必须是一个字符
char c;
c=getchar();//输入一个字符
putchar(c);//输出一个字符
-
4、cin>>
-
当我们从键盘输入时,有一个缓冲区,当输入结束时会将输入的数据存到缓冲区。而cin>>就是从缓冲区中将数据读取出来
-
cin>>遇到空格、换行时读取结束
//输入数字
int a ,b;
cin>>a>>b;
//输入一个字符串,遇到空格结束
//如输入hello world,则输出结果为hello
char a[20];
cin>>a;
string s;
cin>>s;
- 5、cout<<
输出 - 6、gets_s()
- 接收输入的字符串,直到换行符结束,但换行符会被丢弃,末尾加‘\0’
char ch[20];gets_s(ch);cout << ch;
注意:
#include<iostream>
int main(){
int n;cin>>n;getchar();//需要加一个getchar()函数吸收掉缓冲区中的换行符char ch[10];gets_s(ch);cout<<ch;
}
- 7、gets()函数
输入一行字符串,可以输入空格,遇到回车结束输入,换行符会被丢弃
char c[5];
gets(c);
- 8、getline()函数
该函数用来完成读入一行字符串,可读入空格,遇到回车结束输入
使用该函数要在头文件中加上 #include< string >
string str;
getline(cin,str);
三、输入输出格式的控制
1、scanf()、printf()
- 输入特定格式的值如:输入年–月--日,(2020–04–01)
int year,month,day;
scanf("%d--%d--%d",&year,&month,&day);
printf("%d %d %d\n",year,month,day);//可以直接输出来
- 输出进制转换
int a=10;
printf("%x\n",a);//小写十六进制输出,输出为a
printf("%X\n",a);//大写十六进制输出,输出为A
printf("%o\n",a);//八进制输出 输出为12
- 输出增加前置0
int a=5;
printf("%02d\n",a);//2代表宽度,不足的地方用0补充 即输出为05
printf("%04d\n",a)//输出为0005
- 输出保留小数
double a=5.1;printf("%.2lf\n",a);//输出为5.10
2、cout<<输出格式的控制
- 输出进制转换
int num=10;
cout<<hex<<num<<endl;//以十六进制输出 a
cout<<oct<<num<<endl;//以八进制输出 12
cout<<dec<<num<<endl;//更改了数值的输出格式后,要记得使用 cout << dec 进输出改成默认的十进制输出
cout<<(bitset<8>)num<<endl;//输出二进制 00001010 要包含头文件<bitset>
- 输出保留两位小数
double a=5.1;
cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;//头文件中要包含<iomanip>
- 输出的字符宽度为2,且左对齐
int a=123;
cout<<stew(5)<<a<<endl;//默认即右对齐 输出为 123(左边两个空格)
cout<<setiosflags(ios::left)<<setw(4)<<a<<endl;//设置左对齐