printf与scanf的用法知识(C Primer Plus总结)
发布日期:2021-06-29 11:13:47 浏览次数:2 分类:技术文章

本文共 1627 字,大约阅读时间需要 5 分钟。

printfscanf

1printf()函数返回打印字符的个数,如果有输出错误,则返回一个负值。

2、在scanf中对于%c,在格式字符串中添加一个空格字符会有所不同。例如,如果把%c放在格式字符串中的空格前面,scanf()便会跳过空格,从第1个非空白字符开始读取。也就是说,scanf("%c",  &ch)从输入中的第1个字符开始读取,而scanf(" %c", &ch)则从第1个非空白字符开始读取。scanf()函数返回成功读取的项数。如果没有读取任何项,且需要读取一个数字而用户却输入一个非数值字符串,scanf()便返回0。当scanf()检测到“文件结尾”时,会返回EOFEOFstdio.h中定义的特殊值,通常用#define指令把EOF定义为-1)。

3*的修饰符

(1)、printf()scanf()都可以使用*修饰符来修改转换说明的含义。但是,它

们的用法不太一样。首先,我们来看printf()*修饰符。

如果你不想预先指定字段宽度,希望通过程序来指定,那么可以用*

饰符代替字段宽度。但还是要用一个参数告诉函数,字段宽度应该是多少。

也就是说,如果转换说明是%*d,那么参数列表中应包含* d对应的值。这

个技巧也可用于浮点值指定精度和字段宽度。程序清单4.16演示了相关用

法。

#include <stdio.h>

int main() {

  unsigned width, precision;

  int number = 256;

  double weight = 242.5;

  printf("Enter a field width:\n");

  scanf("%d", &width);

  printf("The number is :%*d:\n",width, number);

  printf("Now enter a width and aprecision:\n");

  scanf("%d %d", &width,&precision);

  printf("Weight = %*.*f\n", width,precision, weight);

  printf("Done!\n");

  return 0;

}

变量width提供字段宽度,number是待打印的数字。因为转换说明中*

d的前面,所以在printf()的参数列表中,widthnumber的前面。同样,width

precision提供打印weight的格式化信息。下面是一个运行示例:

Enter a field width:

6

The number is : 256:

Now enter a width and aprecision:

8 3

Weight = 242.500

Done!

这里,用户首先输入6,因此6是程序使用的字段宽度。类似地,接下来

用户输入83,说明字段宽度是8,小数点后面显示3位数字。一般而言,程

序应根据weight的值来决定这些变量的值。

(2)、scanf()*的用法与此不同。把*放在%和转换字符之间时,会使得

scanf()跳过相应的输出项。程序清单4.17就是一个例子。

#include <stdio.h>

int main() {

  int n;

  printf("Please enter threeintegers:\n");

  scanf("%*d %*d %d", &n);

  printf("The last integer was %d\n",n);

  return 0;

}

程序清单4.17中的scanf()指示:跳过两个整数,把第3个整数拷贝给n

下面是一个运行示例:

Please enter threeintegers:

2013 2014 2015

The last integer was2015

在程序需要读取文件中特定列的内容时,这项跳过功能很有用。

转载地址:https://blog.csdn.net/ZWHSOUL/article/details/79118891 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:三目运算符(条件运算符)
下一篇:字、位、字节摘抄的,怕忘了

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月27日 20时05分20秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

面试官问:说说悲观锁、乐观锁、分布式锁?都在什么场景下使用?有什么技巧?... 2019-04-29
新版 IDEA 发布,牛逼!网友:内存占用有所好转! 2019-04-29
卧槽!百度网盘宣布 VIP 开放免费领取!亲测有效!! 2019-04-29
收到阿里年终奖后,我感觉穷的睡不着,网友:贫穷限制了我的想象力 2019-04-29
VS Code 上那些沙雕插件 2019-04-29
重磅!百度网盘新规发布:将收回已获得的免费空间!网友炸裂了 2019-04-29
GitHub上13个Spring Boot 优质开源项目!超53K星,一网打尽! 2019-04-29
同事写了一个update,误用一个双引号,生产数据全变0了! 2019-04-29
阿里彻底拆中台了! 2019-04-29
2003年某神秘组织的技术栈,曝光出来竟是这样,网友炸了 2019-04-29
为什么强烈推荐 Java 程序员使用 Google Guava 编程! 2019-04-29
用了3年Apollo,这次我选择了Nacos,原因不多说了 2019-04-29
炸裂了!又一波新的微信红包封面,抓紧领取,先到先得! 2019-04-29
毕业设计别再做 XX 管理系统了!!! 2019-04-29
国内一39岁程序员入住养老院,网友:羡慕了 2019-04-29
AI神还原苏东坡相貌,古画上的苏东坡“活”了 2019-04-29
淘宝开源的代码质量检测工具,太强大了!! 2019-04-29
C++从入门到精通需要多久? 2019-04-29
官宣!最新5款红包封面 !!! 2019-04-29
Chrome 灵魂插件!爱了爱了! 2019-04-29