来张色图先!

这几天忙里偷闲,学完了C primer plus的第四章,总结一下
转换说明的修饰符与空格
在scanf赋值的时候,%s会跳过空格,比如这样
scanf_s("%s %s",&cost,&host);
scnaf_s("%s%s",cost,host);
经过控制台你会发现,他的结果是一样的!
转换说明之中的例外
但是有一个例外,比如%c
scanf_s("%c", &cost);
scanf_s("%c",&cost);
第一种会从第一个字符开始读取(无论是不是空格)
第二种会以非空格开始读取
重点是:
scanf_s读取的时候,如果没有读取到想要的数值就会返回0
自定义字符宽度
#include <stdio.h>
int main(void)
{
unsigned width,precision;
int num=256;
double weight=242.5;
printf("Please enter the width you want:");//先输入一个你想要的宽度
scanf_s("%d",width);
printf("%*d",width,num);
printf("Please enter the precision you want:");//输入一个你想要的精度
scanf_s("%d",precision);
printf("%*.*d",width,precision,weight);
return 0;
}
以上实例表示,自定义字符宽度,用*来定义
‘*’在scanf中的使用

如果像图里那么执行,那么带‘*’的将会被略过!

需要读取文件中特定列的内容时,这项跳过功能很有用!
对于scanf(),
一定要记得在变量名前加上地址运算符(&)
头文件<string.h>
里面有一个strlen(用来计算文本占用宽度)
还有一个sizeof(用来计算占用系统的字节数)
#include <stdio.h>
#include <string.h>
int main(void)
{
char name[40];
printf("Please enter your name.”)
scanf_s("%s",name,40);//一定加上位数,不然报错
printf("%d".strlen(name));//strlen的用法
printf("%d",sizeof name);//sizeof的用法
return 0;
}
strlen(“这里写变量”)
sizeof 这里写变量
const用法
const 是只读的标志,我的理解是只有一遍赋值,以后scanf就不能赋值了
const int num;
const int num;=250
#define用法
#define num ”huaji“
#define num 123
define可以是预处理头部,可以当作字符串和变量来使用!
发表评论