C语言输入输出函数printf与scanf的用法格式

2023-10-31

转自:微点阅读  https://www.weidianyuedu.com/content/4617732110906.html

c语言输入输出函数printf与scanf的用法格式 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:

printf(\格式化字符串>\参量表>);

其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式控制字符, 以\开始, 后跟一个或几个控制字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,可以是常量、变量或表达式,其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用\分开, 且顺序一一对应, 否则将会出现意想不到的错误。 例如:

正常字符 参量表

printf(\

1. 格式控制符Turbo c2.0提供的格式化规定符如下:

格式控制字符

━━━━━━━━━━━━━━━━━━━━━━━━━━

符号 作用

──────────────────────────

%d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值

%e,%E 指数形式的浮点数

%x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的整数 %g,%G 自动选择合适的表示法

━━━━━━━━━━━━━━━━━━━━━━━━━━

printf的附加格式说明字符 字符 l 说明 用于长整型数或双精度实型,可加在格式符d、o、x、u和f前面 m(代表一个正整数据最小输出显示宽度 数) n(代表一个正整对实数,表示输出n位小数;对字符串,数) - 表示截取的字符个数。 输出的数字或字符在域内向左靠,即位数不足时右补空格。 说明:

在输出时,对不同类型的数据要使用不同的格式字符。常用的有以下几种:

(1)d格式符。用来输出十进制整数。

① %d。按十进制整型数据的实际长度输出。 ② %md。M

为指定的输出字段宽度。如果数据的位数小于

m,则左端补以空格,若大于m,则按实际位数输出。例如:

printf(\

若a=123,b=12345,则输出结果为 _123,12345

③ %ld。输出长整型数据,例如

long a=135790; printf(\);

如果用%d输出,就会发生错误,因为整型数据的取值范围为-32768~32767。对于long型数据应当用%ld格式输

出。对长整型数据也可以指定字段宽度,如将上面printf函数中的“%ld”改为“%8ld”,则输出为 _ _ 135790

一个int型数据可以用%d或%ld格式输出。

(2)o格式符。以八进制整数形式输出。由于是将内存单元中的各位的值(0/1)按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。例如: int a=-1;

printf(\);

-1在内存单元中的存放形式(以4个字节补码形式存放)如下:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 输出为

-1,37777777777

不会输出带负号的八进制整数。对长整型(long型)可以用“%lo”格式输出。同样可以指定字段宽度,例如:

printf(\); _ _ 37777777777

(3)x格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例如: int a=-1;

printf(\); 输出结果为

ffffffff,37777777777,-1

同样可以用“%lx”输出长整型数,也可以指定输出字段的宽度,例如“x”。

(4)u格式符。用来输出unsigned型数据,即无符号数,以十进制整数形式输出。

一个有符号整数(int型)也可以用%u格式输出;反之,一个unsigned型数据也可以用%d格式输出。按相互赋值的规则处理。Unsigned型数据也可以用%o和%x格式输出。 (5)c格式符。用来输出一个字符。例如: char c="a"; printf(\);

输出字符‘a’,请注意:“%c”中的c是格式符,逗号右边的c是变量名,不要混淆。

一个整数,只要它的值在0~255范围内,也可以用“%c” 使之按字符形式输出,在输出前,系统会将该整数作为AScII码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。例如: char c="a"; int i=97;

printf(\);

printf(\); 运行结果为: a,97 a,97

也可以指定输出字数宽度,例如:printf(\);

(6)s格式符,用来输出一个字符串,有几种用法:

① %s。例如:

printf(\);

输出字符串“cHInA”(不包括双引号)。

② %ms。输出的字符串占

m列,如字符串本身长度大于m,

则突破m的限制,将字符串全部输出,若串长小于m,则左补空格。

③ %-ms。跟以上的区别就是右补空格。 ④ %m.ns。输出的字符串占

m列,只取字符串左端n个字

符,不足位数,左补空格。

⑤ %-m.ns。跟以上的区别就是右补空格。

(7)f格式符。用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

① %f,不指定字段宽度,由系统自动指定,整数部分全

部输出,并输出6位小数。单精度实数的有效位数一般为7位(包括整数和小数位数)。

例如: float x,y;

x=111111.111;y=222222.222; printf(\); 输出结果为: 333333.328125

显然,只有前7位数字是有效数字,千万不要以为凡是计算机输出的数字都是准确的。双精度数也可以用%f格式输出,它的有效位数一般为16位,给出小数6位。

② %m.nf,指定输出的数据共占

m列,其中有n位小数。

长度不够,左补空格。

③ %-m.nf,右补空格。

(8)e格式符。以指数形式输出实数。详细情况参阅谭浩强的《c语言程序设计》。

(9)g格式符。用来输出实数,它根据数值的大小,自动选择f格式或e格式。详细情况参阅谭浩强的《c语言程序设计》。

(10)

2. 一些特殊规定字符

━━━━━━━━━━━━━━━━━━━━━━━━━━

字符 作用

──────────────────────────

\\n 换行 \\f 清屏并换页 \\r 回车 \\t Tab符

\\xhh 表示一个AScII码用16进表示, 其中hh是1到2个16进制数 ━━━━━━━━━━━━━━━━━━━━━━━━━━

c程序中的第一条语句#include的含义是调用另一个文件stdio.h, 这是一个头文件, 其中包括全部标准输入输出库函数的数据类型定义和函数说明。

c编译器(Turbo c或Vc++6.0)对每个库函数使用的变量及函数类型都已作了定义与说明, 放在相应头文件\中, 用户用到这些函数时必须要用#include<*.h>或#include\语句调用相应的头文件, 以供连接。若没有用此语句说明, 则连接时将会出现错误。但有些编译器已经将常用的头文件默认包含,可以将语句:

#include省略,但是要根据编译器而定。

二、scanf()函数

scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。 其调用格式为:

scanf(\格式化字符串>\地址表>); 格式化字符串包括以下三类不同的字符;

1. 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。

2. 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。

3. 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

地址表是需要读入的所有变量的地址, 而不是变量本身。这与printf()函数完全不同, 要特别注意。各个变量的地址之间同\分开。 例2: main() {

int i, j;

printf(\ scanf(\ }

上例中的scanf()函数先读一个整型数, 然后把接着输入的逗号剔除掉, 最后读入另一个整型数。如果\这一特定字符没有找到, scanf()函数就终止。若参数之间的分隔符为空格, 则参数之间必须输入一个或多个空格。 说明:

(1). 对于字符串数组或字符串指针变量, 由于数组名和指针变量名本身就

是地址, 因此使用scanf()函数时, 不需要在它们前面加上\操作符。例如

mian() {

char *p, str[20]; scanf(\ scanf(\ printf(\ printf(\ }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言输入输出函数printf与scanf的用法格式 的相关文章

  • 初入android驱动开发之字符设备(一)

    大学毕业 初入公司 招进去的是android驱动开发工程师的岗位 那时候刚进去 首先学到的就是如何搭建kernel android的编译环境 然后就是了解如何刷设备以及一些最基本的工具 如adb fastboot grep minicom
  • Jenkins学习笔记4

    配置构建流程 Jenkins任务创建 1 创建新任务 把这个Accept first connection改成 No Validation 问题得到解决 说明下 要确认下主分支的名称是master还是main 构建触发器这块暂时没有需要配置
  • debian安装dde桌面

    使用命令 sudo vi etc apt sources list d deepin git list添加以下内容 deb trusted yes arch amd64 https deepin community github io de

随机推荐

  • Jmap-JVM(十六)

    上篇文章说了ZGC是jdk11加入的 他是未来jvm垃圾收集器的奠定者 满足TB级别内存处理 STW时间保持在10ms以下 Jmap 我们可以先通过jmap histo 进程ip 来查看 但是这样看不太清晰 我们可以用这行命令生成一个文件
  • 理解 Pod 和容器设计模式

    本节课程要点 为什么需要 Pod Pod 的实现机制 详解容器设计模式 为什么需要 Pod 容器的基本概念 现在来看第一个问题 为什么需要 Pod 我们知道 Pod 是 Kubernetes 项目里面一个非常重要的概念 也是非常重要的一个原
  • 傅里叶分析——三角函数

    一 嘛叫频域 从我们出生 我们看到的世界都以时间贯穿 股票的走势 人的身高 汽车的轨迹都会随着时间发生改变 这种以时间作为参照来观察动态世界的方法我们称其为时域分析 而我们也想当然的认为 世间万物都在随着时间不停的改变 并且永远不会静止下来
  • synchronized锁升级详细过程

    目录 一 锁升级基础 1 偏向锁 2 轻量级锁 自旋锁 3 重量级锁 二 为什么要有锁升级过程 1 减少无竞争情况下的同步操作开销 2 尽量避免线程切换的开销 3 降低内存消耗 4 提高系统吞吐量 三 锁升级具体过程 一 锁升级基础 1 偏
  • 流程挖掘为什么已成为RPA智能自动化重要组成部分?

    流程挖掘为什么已成为RPA智能自动化重要组成部分 近年来 越来越多企业正通过部署RPA优化业务流程 保持企业的竞争优势 IDC调查发现 受调查的用户中 201家企业 35 表示 正在使用IPA中的流程挖掘功能 未来12 24个月内将有39
  • Windows下查看进程的命令行参数

    我们可以使用下面方法得到 在XP下是可以查看进程命令行参数的 使用下面的命令 wmic process get caption commandline value 如果想查询某一个进程的命令行参数 使用下列方式 wmic process w
  • no session found for current thread错误详解

    hibernate4与spring3整合时遇到no session found for current thread错误 在网上找了好多都说加上
  • three.js学习(第四天)之环境遮挡贴图与强度

    AO环境遮挡贴图 创建纹理 const textureLoader new THREE TextureLoader const doorColorTexture textureLoader load src assets textures
  • geth运行报错zsh: exec format error: ./geth

    使用 file geth 可知 原因多半是geth与对应的系统不匹配造成的 同理 AMD的mac也暂时用不了这个 可以从这里重新下载 https geth ethereum org downloads
  • Python virtualenv 虚拟环境(详细使用,包含打包 exe/app )

    一 简介 virtualenv 官网 Python 虚拟环境官方中文文档 在开发 Python 应用程序的时候 系统上通常只会安装一个 Python 版本 例如 3 7 所有使用 pip 安装的第三方包都会被安装到 Python 的 sit
  • 期货量化交易程序CTP入门指南 一

    周末综合征 周末爬山 跑步导致周一上班困的啥都不想做 正好趁这个时间写一下前两周做的一个期货网格化工具 算是给后面要入门的兄弟尽点微薄之力 虽然网上的资料已经足够多 我本对期货一无所知 仅知道 期货 二字而已 但受朋友之托开发一款网格化工具
  • 快速使用C ++保护或取消保护Word文档

    数字文档的保护一直是热门话题 就Word文档而言 MS Word提供了多种内容保护功能 这些功能限制了用户对文档的访问 您可以使用密码保护文档并应用所需的限制 以避免未经授权的访问 因此 本文将介绍如何在C 应用程序中自动执行Word文档保
  • python作业合集(三)

    作业1 猜数字游戏 电脑随机一个范围内的数 用户输入数据判断 如果数大了 提供 数大了 成功之后 加上用户是否继续功能 作业2 猜拳游戏 石头 剪刀 布的游戏 作业3
  • git设置编码

    git config global core quotepath false 显示 status 编 git config global gui encoding utf 8 图形界面编码 git config global i18n co
  • 你好,五月

    五月算是上大学以来最忙碌的一个月 因为所有事碰巧都堆到这个月了 当然也是因为这个月的存在 让我成长了许多也让我认识到原来自己可以做这么多事 人力项目 柳暗花明 人力资源项目 五一七天时间我们全天基本上是在423度过的 每天都一起在研究如何实
  • macOS查看文件路径

    当在mac系统中需要输入文件路径 快速找到文件路径 有以下2个步骤 1 点击Finder查看全部文件 shift command c 进入到磁盘界面找到需要放置的文件夹 2 打开终端输入命令 defaults write com apple
  • Ubuntu 安装 Wireshark

    Ubuntu 安装 Wireshark 概述 Wireshark 是一款图形化的网络协议分析工具 它允许你交互式地浏览实时网络或以前保存的捕获文件中的数据包数据 Wireshark 的本地捕获文件格式是 pcapng 格式 或者是 pcap
  • jsunix时间戳转换成时间

    jsunix时间戳转换成时间 js实现unix时间戳转换代码教程如下 输入一个时间 实现结果 转换成时间戳 js实现代码如下 act 鏃堕棿鎴宠浆鎹 version 1 1 author youngxj date 2018 07 01 ur
  • 训练---递归与递推

    文章目录 一 递归实现指数型枚举 递归 二 递归实现排列型枚举 递归 三 简单斐波那契 四 费解的开关 五 递归实现组合型枚举 六 带分数 七 飞行员兄弟 七 翻硬币 一 递归实现指数型枚举 递归 任意门 include
  • C语言输入输出函数printf与scanf的用法格式

    转自 微点阅读 https www weidianyuedu com content 4617732110906 html c语言输入输出函数printf与scanf的用法格式 printf 函数用来向标准输出设备 屏幕 写数据 scanf