printf与scanf函数
printf函数是一个格式化输出函数
scanf()函数则是一个输入函数,
其一般的调用格式:scanf(格式控制,&地址列表);。其中格式控制一般是双引号中间加一些字符(由%与格式符组成),用于控制输入的格式,比如:%d,%c
%是格式控制符,它指明了以何种形式输出数据
&n表明对象n在内存中的地址
格式控制 | 数据类型 |
---|---|
%d | 用于输入十进制整数型 |
%o | 用于输入八进制整数型 |
%x | 用于输入十六进制整数型 |
%c | 用于输入单个字符 |
%s | 用于输入字符串 |
%f | 用于输入实数型(包括浮点数) |
有些关键字的格式控制不在表格中,在讲述数据类型时会有补充
两种函数都被声明在头文件stdio.h里,在使用时,要在程序中加入#include <stdio.h>
具体使用方法在数据类型中一并展示
基本数据类型
概念:一种在计算机语言中对内存位置的一的抽象表达方式。
以整数类型为例
int a //定义整形变量 类型 变量名
三种赋值方式
1, 初始化:定义变量的同时赋值
2, 直接赋值:先定义一个变量,再赋值给这个变量
3,键入赋值:定义一个变量,在运行时通过键盘将获取的值存入变量
#include<iostream> //使用cin,cout须调用iostream库
#include<stdio.h> //调用stdio.h的库
using namespace std;
int main()
{ //函数开始
int a=1; //初始化 定义变量的同时给他赋值
int b; //定义变量
b=2; //直接赋值
int c; //定义变量
cin>>c; //键入赋值 将键盘获取的值存入c中
cout<<a<<b<<c; //输出变量
return 0; //结束程序
}
分类
一, 整形类型
常用关键字:
int:4个字节,32位(整数类型默认是int类型,取值范围约21亿) 格式符 d
short:2个字节,16位,取值范围为【-32768,32767】 格式符%hd
byte:1个字节,8位,256种状态,取值范围【-128,127】 格式符
long:8个字节,64位 格式符%ld
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a;
cin>>a;
cout<<a<<endl; //endl有换行作用
int b;
scanf("%d",&b); //cin>>b
printf("%d",b); //cout<<b
return 0;
}
二,浮点数类型
关键字:
float(单精度):4的字节,32位,8位指数,23位有效尾数 格式符%f
double(双精度):8个字节,64位,11位指数,52位有效尾数 格式符%lf
注:double比float精度更高,也更为常用。
赋值方式与整形相同,两者区别在于整形只能只能用与整数,而浮点型可以应用于小数,即可以出现小数点
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
double a;
cin>>a;
cout<<a;
double b;
scanf("%lf",&b); //cin>>b
printf("%.2lf",b); //cout<<b(%后加.再加保留的小数大小,这里保留两位小数)
return 0;
}
三,单一字符类型
关键字:char(用于存储单一字符,2个字节,16位) 格式符%c
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<a<<endl;
char b;
scanf("%c",&b); //cin>>b
printf("%c",b); //cout<<b
return 0;
}
四,字符串类型
关键字:sting 格式符%s
注意:string并非是c的原生类型,无法像直接输入整数那样方便的使用scanf函数输入string变量,如果想直接使用,可以使用下面的方法。
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
int main()
{
string a;
a.resize(2); //预先分配空间,()内位预存的字符串大小
scanf("%s",&a[0]);
cout<<a;
return 0;
}
五,布尔类型
关键字:bool(占1位)
只有false和true两个值,一边用于表示逻辑运算说明;以“//”开头为为注释行,“//”后的内容用以对语句进行说明,输入程序时可以不输入。
#include<iostream>
using namespace std;
int main()
{
bool a=-99;
cout<<a;
return 0;
}