2020-10-25

scanf printf 学习教案和心得

教案
学习资料
一 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出
信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符
格式化字符串的格式是:
%[标志][输出最小宽度][.精度][长度]格式字符
标志字符为-、+、#、空格四种,其意义下表所示:
标志 意义

  •             结果左对齐,右边填空格
    
  •             输出符号(正号或负号)
    

空格 输出值为正时冠 对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
%c 单个字符
%d 十进制有符号整数
%e 以“科学记数法”的形式输出十进制的浮点数 如2.451e+02
%f 输出十进制浮点数,不带域宽时,保留6位小数
%g 选用e或f格式中较短的一个输出十进制浮点数,不输出无效零
%0 无输出无符号八进制整数
%p 指针的值
%s 输出字符串
%u 输出无符号十进制整数
scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。
其调用格式为:
scanf("<格式化字符串>", <地址表>);
格式化字符串包括以下三类不同的字符;

  1. 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。
  2. 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多
    个空白字符。
  3. 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非
    空白字符相同的字符。
    注意:(1)地址表是需要读入的所有变量的地址, 而不是变量本身:
    ----如果是一般的变量,通常要在变量名前加上"&";但输出时是用变量名
    ----如果是数组,用数组名就代表了该数组的首地址;输出时也是用数组名
    ----如果是指针,直接用指针名本身,不要加上“*”;
    (2)scanf函数中是否包含空白/非空白字符导致输入格式的不同
    如:scanf("%d,%d",&i,&j); scanf中有,所以输入的格式应该是5,6==>i=5,j=6
    scanf("%d%d",&i,&j); 可以用空格或回车来分隔两个输入 如 5 6==>i=5,j=6
    scanf("%d %d",&i,&j); 同上
    (3) 实际使用scanf()函数时存在一个问题, 下面举例进行说明:
    当使用多个scanf()函数连续给多个字符变量输入时, 例如:
    运行该程序, 输入一个字符A后回车 (要完成输入必须回车)
    在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符
    输入为:d e f
    则把’d’赋予a, ’ ’ 赋予b,'e’赋予c。
    只有当输入为: def
    时,才能把’d’赋于a,'e’赋予b,'f’赋予c。
    如果在格式控制中加入空格作为间隔,
    由于scanf函数"%c%c"中没有空格,输入M N,结果输出只有M。而输入改为MN时则可输出MN两字符。
    (4)格式字符串的一般形式为:
    %
    [输入数据宽度][长度]类型
    其中有方括号[]的项为任选项。各项的意义如下:
    1)类型:表示输入数据的类型,其格式符和意义如下表所示。
    格式 字符意义
    d 输入十进制整数
    o 输入八进制整数
    x 输入十六进制整数
    u 输入无符号十进制整数
    f或e 输入实型数(用小数形式或指数形式)
    c 输入单个字符
    s 输入字符串

学习心得
​在C语言中,printf系列函数和scanf函数功能很强大,用好了的话,很多字符操作都可以很简单,甚至一些简单的正则匹配的工作也可以用scanf来完成,但是我在使用时还不能熟练,经常使用百度 耗费时间 我觉得要准确理解 才能自如地使用。我的徒弟更是一头懵,我觉得学习中就像老师说的那样不断的尝试不断的练习。 在csdn中也可以搜索到学到问题的解答。(ps:百度永远滴神)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值