目录
一、C语言中的scanf
scanf 格式:%[width][modifiers]type
其中width为指定当前读取操作中读取的最大字符数
type为字符类型,常见的有如下所示:
转换字符 | 参数类型 | 含义 |
d | int* | 十进制有符号整数 |
f | float* | 浮点型字面值常量 |
c | char* | 读取单个字符。如果给出宽度,就读取给定数目的字符 |
注:scanf()在处理数值位占符时,会自动过滤空白字符,包括空格、制表符、换行符等。
有关scanf()的例子
int a=0;
float b=0;
scanf("%d%f",&a,&b);
int n=0;
scanf("%3d",&n)
//如果在终端输入1234,scanf只能读取3个字符,所以最终输出结果为123
二、C语言中的printf
printf 格式:%[flags][width][.precision][modifiers]type
其中.precision为精度,通过点号分隔字段的宽度和精度
- 对于字符串,它指定打印的字符的最大个数
- 对于整数,它指定打印的数字的最小位数
- 对于转换字符为e、E或f,它指定小数点后打印的数字位数
type的常见类型如下:
转换字符 | 参数类型 | 含义 |
d、i | int | 参数作为有符号十进制整数打印 |
f | double | 参数按照常规的浮点数形式打印。小数点后面的位数是由精度字段决定,默认是6 |
c | char | 参数被裁剪为unsigned char类型并作为字符打印 |
s | char* | 打印一个字符串 |
有关printf()的例子
//小数的默认精度是小数点的后六位
printf("%9f\n",1.234); //输出结果为1.234000
printf("%9f\n",100.234); //输出结果为100.234000
printf("%.3f",1.2); //输出结果为1.200
printf("%.4f",1.2); //输出结果为1.2000
int a=0;
scanf("%d",&a);
printf("输出:%d\n",a);
三、C++中的cin、cout
在C++语言中依然可以使用scanf()和printf()来输入和输出,但需要加上头文件#include<stdio.h>
而使用cin和cout,需要加上头文件#include<iostream>
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
输入:2【空格】3【回车】
输出:5
cin接受一个字符串,遇到“空格”、“Tab”、“回车”都会结束
char a[20];
cin>>a;
cout<<a<<endl;
输入:abcd
输出:abcd
输入:a b c d
输出:a
四、字符的输入
1、cin.get()
cin.get(字符变量名) 可以用来接收字符
char ch;
ch=cin.get(); //或者cin.get(ch);只能获取一个字符
cout<<ch<<endl;
输入:aaaa
输出:a
2、cin.get()
cin.get(字符数组名,接收字符数)用来接收一行字符串,可以接收空格
char a[20];
cin.get(a,20); //中间可以用空格隔开
cout<<a<<endl;
输入:ee ee ee
输出:ee ee ee
输入:asdfasdfasdfasdfasdfasdf //输入了24个字符
输出:asdfasdfasdfasdfasd //最后只能接受19个字符+1个'\0'(字符串结束字符标志)
3、cin.getline()
cin.getline(字符数组名,接收字符数,结束字符) 接收一个字符串,可以接收空格,其中第三个参数“结束字符”可省略不写,默认为'\n'。
char m[20];
cin.getline(m,5);
cout<<m<<endl;
输入;qweeeee
输出:qwee //只接受四个字符+1个'\0'
输入:q qqeeq
输出:q qq //其中空格算一个字符
当用在多维数组(如二维数组)中的时候,也可以用cin.getline(m[i],20) 来输入。
4、getline()
getline() 接受一个字符串,可以接收空格,但前提需加上头文件“#include <string>”
与cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流
string str;
getline(cin,str);
cout<<str<<endl;
5、getchar()
getchar() 接收一个字符,需包含“#include <string>”
char ch;
ch=getchar(); //不能写成getchar(ch);
cout<<ch<<endl;
输入:aa
输出:a
五、string类型字符串长度
1、length()
length() 函数是string的内置成员,用于返回string类型字符串的实际长度
string s="hello world!"
cout<<s.length()<<endl;
输出:12
2、size()
string s="hello world!"
cout<<s.size()<<endl;
输出:12
参考博客: