你我什么时候
有过自由

回顾一下printf和scanf_s的用法

来张色图先!

这几天忙里偷闲,学完了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可以是预处理头部,可以当作字符串和变量来使用!

赞(1)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    滑稽

    Gabreel3个月前 (07-23)回复
  2. #2

    涩涩的😎

    松鼠大大3个月前 (07-24)回复

分享下

点击登机网盘