数据类型和打印输入函数

1,常量

1.1整形常量:1.,2,3,4,5......

  • 长整型常量 1L

  • 无符号 1u

1.2实数型常量:1.1, 1.2, 1.3......

  • 单精度常量:1.1f

  • 双精度常量:1.1代码中默认的小数都是双精度

  • 0.25 合法

  • .25 合法

  • 合法

1.3字符型常量

  • 字符型常量都有边界符 ’ ‘

    • ’AB‘有效字符只有一个

  • 转义字符----->通常用在打印的时候调整格式,或者是打印特殊的字符

1.4字符串型常量

  • 字符串边界符 ” “

  • 每一个字符串后面都有一个结束标记 \0

'A'与"A"有区别前者占用1个字节,后面的占用两个字节,因为后面的A为字符串常量,有看不见的结束标记/0

1.5符号型常量,用一个英语单词去替换一个常量

  • 用英语单词 替换一个常量

  • #define PI 3.1415926

2,变量

2.1定义变量的语法:类型 标识符(就是名字)

2.2标识符起名字的规则

  • 不能用关键字

  • 不能用数字开头,可以用字母或者下划线等等

  • 比较经典的命名方式:

  • 驼峰命名法 小驼峰:setPos(首字母小写,其他单词开头大写) 大驼峰:SetPos(所有单词开头均用大写开头)

    匈牙利命名法 g_setPos(开头有后缀)

2.3,C语言常用类型

  • int 整形

  • float 单精度浮点型

  • double 双精度浮点型

  • char 字符型

  • ......

  • 占用字节数

char Ikun = 'A'//"="是赋值语句
Ikun = 'B'

TIPs:同一个{ }下面不能定义两个相同的名字

2.4,结合修饰词衍生出来的类型

  • 内存上 short 短 long 长

short int Ffei = 0 ;//占用两个字节
long int Wwu = 1L;//占用四个字节
long long TNND = 1LL;//占用八个字节
//以上 int 均可以省略>
  • 无符号 unsigned 无符号 只能存正数 可以修饰字符

  • 有符号 signed 可以修饰字符

unsigned char DDD = 'A';

本质上不需要符号位,无符号相对于有符号多了一个字节存放内存

  • const :只读,不能被修改下,修改会报错

const int EEE = 1;
int const EEE = 2;

3,printf函数

3.1 原样打印和转义字符调整格式

制表符 \t

按8位输出,不够补空格,补齐8位,超过8位按照16位制表,以此类推

一个 \t 表示8位空格 2个表示16位 通过调整 \t 来调整表格

3.2特殊字符的打印

printf("你这是违法行为"走跟我去自首\n");//会报错,VS无法识别哪个是有效"
printf("你这是违法行为\"走跟我去自首\n");//正确写法:在''前面加\,能打印出来  "   
printf("你幸福吗?\\我姓曾\n");//两个\\\ 符号打印出一个\
printf("幸福度200%%\n");//打印一个百分号需要两个%%

3.3打印变量值通过占位符(格式控制字符)

%i---输出一个整型数;

%d---输出一个整型数;

%f---输出一个浮点数;

%e---输出一个浮点数,科学计数法;

%g---输出一个浮点数,当指数小于-4或者大于5,则运用科学计数法,否则正常显示浮点数;

%c---输出一个字符;

%o---输出一个八进制的整型数,前面不带0;

%#o---输出一个八进制的整型数,前面带0;

%x---输出一个十六进制的整型数,前面不带0x;

%#x---输出一个十六进制的整型数,前面带0x, 如果x大写,则显示的时候也是大写。

%u---不带符号的十进制整数。

char hmeduzs = 'E';
int EASYboy = 454 ;
printf("%c,%d\n",hmeduzs,EASYboy);

3.4精度控制(手动制表)

格式:%+a.bf %-a.bf +右对齐 -左对齐 a 输出的宽度 b输出的小数位

printf("%-10.1lf%-10.1lf%-10.1lf%\n",3.1415926,0.618,1.618);//打印数字printf("%-10s%-10s%-10s\n","月","牙","冲","天");//手动制表printf("%-20s%-10s%-10s%-10s%-10s\n","姓名","年龄","性别","身高(m)","爱好");
printf("%-20s%-10d%-10s%-10.2lf%-10s\n","小聋女",18,"女",1.7138,"睡绳绳");
printf("%-20s%-10d%-10s%-10.3lf%-10s\n","迪丽热狗",28,"女",1.7250,"莫得感情");
printf("%-20s%-10d%-10s%-10.4lf%-10s\n","羊蜜",16,"女",1.75250,"玩水");//可以用0补位替代空格
printf("%04d.jpg\n",10);

printf("xxx的地址:%p",&xxx);

4,scanf函数

4.1 scanf的输入("格式控制",变量的地址)

& 取地址符

需要用回车确认输入,输入数据后会出现多了一个换行符\n的情况

打个比方,输入123在stdin缓冲区内是123\n

  • 输入单个数据

int NED = 0 ;
printf("NED的地址:%p\n",&NED);
printf("美女请输入一个整数:");
scanf("%d",&NED);
printf("美女输入的整数是:%d",NED);
  • 输入多个数据

float AUS = .0f ;
double HUN = .0 ;
printf("请输入两个值:");
scanf("%f%lf",&AUS,&HUN);
scanf("%f,%lf",&AUS,&HUN);//输入的数据也必须带有X,(带逗号,逗号也要区分中英文)X的格式,必须和scanf格式控制里的格式里一样
//浮点数在输入的时候不存在精度控制,不要加转义字符
printf("AUS=%f,HUN=%lf\n",AUS,HUN);//输入数据默认用空格作为间隔,不需要另外打空格,回车也可以作为间隔

4.2字符串输入注意事项

字符串或者字符在输入前做了其他输入,会存在跳过现象

输入完数据后按下回车键,\n转义字符仍然在缓冲区里,会送给字符变量DD,所以要想办法把换行符给清除掉

  • 写两次scanf函数

  • getchar() 输入字符的函数

  • while (getchar()!='\n'); //读取字符,直到读取字符结束

4.3 VS中的scanf_s函数(scanf的增强版本)

  • 对于数字类输入的函数没有任何改变

  • 对于字符或者字符串函数需要增加一个参数,表示尺寸

char key = 0 ;
scanf_s("%c",&key,1);
printf("key=%c\n",key);
......
scanf_s("%d %c%f", &xxx1, &xxx2,1, &xxx3);//输入完需要紧跟尺寸,输入的时候字符在中间,需要在字符前面加空格,否则会把默认的空格给字符

5,getchar和putchar,getch字符专有函数的使用

getchar,专门的字符输出函数,同样需要回车确认

int kee = getchar();
printf("kee=%c",kee);

putchar,输出字符常量或者字符变量

putchar('A');
putchar(kee);

getch,输入字符的函数,不会显示按键的内容,不需要按下回车确认输入内容,游戏里用的居多,VS里需要加个下划线_getch

int key = _getch();
printf("key=%c",key);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值