OraleDB使用单行函数定制输出

OraleDB使用单行函数定制输出
OraleDB使用单行函数定制输出

? 描述SQL 提供的各类函数

? 在SELECT 语句中使用字符、数字和日期函数

?SQL 函数

函数是SQL 的一项非常强大的功能,可用于执行以下操作:

? 执行数据计算

? 修改单个数据项

? 处理成组行的输出

? 设置日期和数字的显示格式

? 转换列数据类型

SQL 函数有时接受多个参数,但始终返回一个值。

?两种类型的SQL 函数

有两种类型的函数:

? 单行函数

? 多行函数

单行函数

这些函数仅对单行进行处理,为每行返回一个结果。单行函数具有多种不同类型。介绍以下几种函数:

? 字符

? 数字

? 日期

? 转换

? 常规

多行函数

这些函数可以处理成组的行,为每组行返回一个结果。

?单行函数

单行函数:

? 处理数据项

? 接受参数并返回一个值

? 对每个返回行进行处理

? 为每行返回一个结果

? 可能会修改数据类型

? 可以嵌套

? 接受参数,这些参数可以是列或表达式

function_name [(arg1, arg2,...)]

在该语法中:

function_name:是函数的名称

arg1, arg2:是函数使用的任意参数,可以是列名称或表达式。

单行函数用于处理数据项。其接受一个或多个参数,并对查询返回的每一行返回一个值。参数可以是下列对象之一:

? 用户提供的常量

? 变量值

? 列名

? 表达式

单行函数的特点包括:

? 对查询中返回的每一行进行处理

? 为每行返回一个结果

? 可能会返回一个与所引用类型不同的数据值

? 可能需要一个或多个参数

? 可用于SELECT 、WHERE和ORDER BY 子句中;也可以嵌套。

将介绍以下单行函数:

? 字符函数:接受字符输入,可以返回字符值和数字值

? 数字函数:接受数字输入,可以返回数字值

? 日期函数:对DATE 数据类型的值进行处理(所有日期函数都会返回一个DATE 数据类型的值,只有MONTHS_BETWEEN 函数返回一个数字。)

? 转换函数:将值从一种数据类型转换为另一种数据类型

? 常规函数:

- NVL

- NVL2

- NULLIF

- COALESCE

- CASE

- DECODE

字符函数

单行字符函数接受的输入是字符数据,可以返回字符值和数字值。字符函数可以分为以下几类:

? 大小写转换函数

? 字符处理函数

注:以下是一些完全或部分符合SQL:2003 的函数:

UPPER

LOWER

TRIM

LENGTH

SUBSTR

INSTR

大小写转换函数

以下函数用于转换字符串的大小写:

LOWER、UPPER和INITCAP是三个大小写转换函数。

? LOWER:将大小写混合或大写的字符串转换为小写

? UPPER:将大小写混合或小写的字符串转换为大写

? INITCAP:将每个单词的首字母转换为大写,其余字母保留为小写

hr@TEST0924> SELECT 'The job id for '||UPPER(last_name)||' is '||LOWER(job_id) AS "EMPLOYEE DETAILS" FROM employees;

EMPLOYEE DETAILS

------------------------------------------------------

The job id for ABEL is sa_rep

The job id for ANDE is sa_rep

The job id for ATKINSON is st_clerk

使用大小写转换函数

使用以下语句可显示雇员Higgins 的雇员编号、姓名和部门编号:

hr@TEST0924> SELECT employee_id, last_name, department_id FROM employees WHERE last_name = 'higgins';

no rows selected

第一个SQL 语句的WHERE子句将雇员姓名指定为higgins。因为EMPLOYEES 表中的所有数据都是以正常大小写形式存储的,所以姓名higgins在表中没有找到匹配项,因此不会选择任何行。

hr@TEST0924> SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name) = 'higgins';

EMPLOYEE_ID LAST_NAME DEPARTMENT_ID

----------- ------------------------- -------------

205 Higgins 110

第二个SQL 语句中的WHERE子句指定将EMPLOYEES 表中的雇员姓名与higgins进行比较,但是先将LAST_NAME 列转换为小写,然后再进行比较。因为两个姓名都是小写的,因此找到了匹配项,从而选择了一行。可以按以下方式重写WHERE子句,产生的结果相同:

...WHERE last_name = 'Higgins'

输出中姓名的显示格式与其存储在数据库中的一样。要以大写形式显示姓名,可以在SELECT 语句中使用UPPER函数。

hr@TEST0924> SELECT employee_id, UPPER(last_name), department_id

FROM employees WHERE INITCAP(last_name) = 'Higgins';

EMPLOYEE_ID UPPER(LAST_NAME) DEPARTMENT_ID

----------- ------------------------- -------------

205 HIGGINS 110

字符处理函数

下面的函数用于处理字符串:

CONCAT 、SUBSTR 、LENGTH 、INSTR、LPAD、RPAD 和TRIM 是要介绍的字符处理函数。

? CONCAT :将值联接在一起(CONCAT 函数中只能使用两个参数)

? SUBSTR :提取确定长度的字符串

? LENGTH :以数字值的形式显示字符串的长度

? INSTR:查找指定字符串的数字位置

? LPAD:返回一个表达式,左边使用一个字符表达式填充到n 个字符的长度

? RPAD:返回一个表达式,右边使用一个字符表达式填充到n 个字符的长度

? TRIM:截去字符串首字符或尾字符(或者两者都截去)(如果trim_character或trim_source 是一个字符文字,则必须将其放在单引号内)

注:可以将UPPER和LOWER等函数与& 替代变量组合使用。例如,如果使用

UPPER('&job_title'),用户就不必以特定的大小写形式输入职务了。

instr( string1, string2, start_position,nth_appearance )

string1源字符串,要在此字符串中查找。

string2要在string1中查找的字符串。

start_position代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始

检索,如果此参数为负,从右到左检索,返回要查找的字符串

在源字符串中的开始索引。

nth_appearance代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。

使用字符处理函数

hr@TEST0924>

l

1 SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?"

2* FROM employees WHERE SUBSTR(job_id, 4) = 'REP'

hr@TEST0924> /

EMPLOYEE_ID

NAME JOB_ID LENGTH(LAST_NAME) Contains 'a'?

----------- --------------------------------------------- ---------- ----------------- -------------202

PatFay MK_REP 3 2 203

SusanMavris HR_REP 6 2 204

HermannBaer PR_REP 4 2

示例中显示从其职务ID 的第四个位置开始包含字符串REP 的所有雇员的以下信息:

联接在一起的名字和姓氏、雇员姓氏的长度,以及字母a 在雇员姓氏中的数字位置。

示例:

修改幻灯片中的SQL 语句,以显示姓氏以字母“n”为结尾的雇员的数据。

hr@TEST0924> SELECT employee_id, CONCAT(first_name, last_name)

NAME,LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?"

2 FROM employees WHERE SUBSTR(last_name, -1, 1) = 'n';

EMPLOYEE_ID NAME LENGTH(LAST_NAME) Contains 'a'?

----------- --------------------------------------------- ----------------- -------------

102 LexDe Haan 7 5

105 DavidAustin 6 0?数字函数

? ROU ND:将值舍入到指定的小数位

? TRUNC:将值截断到指定的小数位

? MOD :返回除法运算的余数

数字函数接受数字形式的输入并返回数字值。

?使用ROUND 函数

hr@TEST0924> SELECT ROUND(45.923,2), ROUND(45.923,0),ROUND(45.923,-1) FROM DUAL;

ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)

--------------- --------------- ----------------

45.92 46 50

ROUND函数用于将列、表达式或值舍入到n 位小数位。如果第二个参数为0 或者缺失,则会将值舍入为整数。如果第二个参数为2,则会将值舍入到2 位小数位。相反,如果第二个参数为-2 ,则会将值舍入到小数点左边2 位(即舍入到最近的百位)。

ROUND函数还可与日期函数一起使用。在本课稍后您将看到相应的示例。

DUAL 表

DUAL 表属于SYS 用户,但所有用户都可以访问它。它包含一个DUMMY列和一个值为X 的行。如果某个值只需返回一次,例如,不是从含有用户数据的表中导出的常量值、伪列值或表达式值,则DUAL 表非常有用。DUAL 表通常用于保持SELECT 子句语法的完整性,因为SELECT 和FROM 子句都是必需的,而有些计算并不需要从实际表中进行选择。

使用TRUNC 函数

hr@TEST0924> SELECT TRUNC(45.923,2), TRUNC(45.923),TRUNC(45.923,-1) FROM DUAL;

TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1)

--------------- ------------- ----------------

45.92 45 40

TRUNC函数用于将列、表达式或值截断到n 位小数位。

TRUNC函数使用参数的方式与ROUND函数非常类似。如果第二个参数为0 或者缺失,则会将值截断为整数。如果第二个参数为2,则会将值截断到2 位小数位。相反,如果第二个参数为-2 ,则会将值截断到小数点左边2 位。如果第二个参数为-1 ,则将值截断到小数点左边1 位。

与ROUND函数一样,TRUNC函数也可与日期函数一起使用。

--Oracle trunc()函数的用法

/**************日期********************/

1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18

2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.

3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天

4.select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日

5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天

6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天

7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41

8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确/***************数字********************/

/*

TRUNC(number,num_digits)

Number 需要截尾取整的数字。

Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0。

TRUNC()函数截取时不进行四舍五入

*/

9.select trunc(123.458) from dual --123

10.select trunc(123.458,0) from dual --123

11.select trunc(123.458,1) from dual --123.4

12.select trunc(123.458,-1) from dual --120

13.select trunc(123.458,-4) from dual --0

14.select trunc(123.458,4) from dual --123.458

15.select trunc(123) from dual --123

16.select trunc(123,1) from dual --123

17.select trunc(123,-1) from dual --120

使用MOD 函数

针对职务为销售代表的所有雇员,计算薪金除以5,000 后的余数。

hr@TEST0924> SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP';

LAST_NAME SALARY MOD(SALARY,5000)

------------------------- ---------- ----------------

Tucker 10000 0

Bernstein 9500 4500

Hall 9000 4000

MOD 函数将返回第一个参数除以第二个参数之后的余数。在示例中,针对职务ID 为

SA_REP 的所有雇员计算薪金除以5,000 后的余数。

注:MOD 函数经常用于确定一个值是奇数还是偶数。MOD 函数也是Oracle 散列函数。

?处理日期

? Oracle DB 以内部数字格式存储日期:世纪、年、月、日、小时、分钟和秒。

? 默认的日期显示格式为DD-MON-RR 。

–通过仅指定年份的后两位,可以在20 世纪存储21 世纪的日期

–同样,也可以在21 世纪存储20 世纪的日期

hr@TEST0924> SELECT last_name, hire_date FROM employees WHERE hire_date < '01-FEB-01 ';

LAST_NAME HIRE_DATE

------------------------- ------------------

De Haan 13-JAN-01

Oracle DB 以内部数字格式存储日期,以此代表世纪、年、月、日、小时、分钟和秒。

任何日期的默认显示格式和输出格式均为DD-MON-RR 。有效的Oracle 日期介于公元前4712 年1 月1 日和公元9999 年12 月31 日之间。

在示例中,HIRE_DATE 列输出以默认格式DD-MON-RR 显示。但是,在数据库中并不以这种格式存储日期,而是存储了日期和时间的所有组成部分。所以,尽管17-JUN-87 之类的HIRE_DATE 只显示出日、月和年,但是数据库中还存在与该日期相关联的时间和世纪信息。完整数据可能是June 17, 1987, 5:10:43 PM 。

?RR日期格式

表中汇总了RR元素的行为。

RR日期格式与YY元素类似,但是可以使用它指定不同的世纪。请使用RR日期格式元素代替YY,这样返回值的世纪会根据指定的两位数年份和当前年份的后两位数而变化。

请注意显示在上表倒数两行中的值。当接近世纪中期时,RR 的行为大概不是你所希望看到的。

此数据在内部按以下格式进行存储:

CENTURY YEAR MONTH DAY HOUR MINUTE SECOND

19 87 06 17 17 10 43

世纪和2000 年

将包含日期列的记录插入到表中时,系统会从SYSDATE函数中获取世纪信息。但是,在屏幕上显示日期列时,默认情况下却不显示世纪的相应部分。

DATE 数据类型用2 个字节存储年份信息:1 个字节存储世纪,1 个字节存储年。无论是否指定或显示世纪值,其始终会包含在内。这种情况下,RR决定INSERT 中世纪的默认值。

?使用SYSDATE函数

SYSDATE是返回以下对象的函数:

? 日期

? 时间

hr@TEST0924> SELECT sysdate FROM dual ;

SYSDATE

------------------

17-OCT-13

SYSDATE是一个日期函数,它返回当前数据库服务器的日期和时间。可以像使用任何其它列名称一样使用SYSDATE。例如,通过从表中选择SYSDATE,可以显示当前日期。通常从称为DUAL 的公用表中选择SYSDATE。

注:SYSDATE将返回为数据库所在操作系统设置的当前日期和时间。因此,如果本人位于澳大利亚,但连接到位于美国(U.S.) 某地的远程数据库,则sysdate函数将返回美国的日期和时间。在这种情况下,可以使用CURRENT_DATE函数返回会话时区的当前日期。

?与日期有关的运算

? 对日期加上或减去一个数字可以获得一个新的日期值。

? 将两个日期相减可以得出它们之间的天数。

? 将小时数除以24 可以将小时添加到日期中。

因为数据库将日期作为数字进行存储,因此可以使用算术运算符(如加和减)执行计算。可以加减数字常量和日期。

可以执行下列操作:

?使用算术运算符处理日期

r@TEST0924> SELECT last_name, (SYSDATE-hire_date) /7 AS WEEKS

FROM employees WHERE department_id = 90;

LAST_NAME WEEKS

------------------------- ----------

King 539.384281

Kochhar 421.241424

De Haan 665.812852

示例中显示部门90 中所有雇员的姓氏和聘用周数。它用当前日期( SYSDATE) 减去聘用雇员的日期,然后用所得的结果除以7 计算出雇员的聘用周数。

注:SYSDATE是一个SQL 函数,它用于返回当前日期和时间。在运行SQL 查询时,返回的结果将随为本地数据库所在操作系统设置的日期和时间而变化。

如果从较早的日期中减去较晚的日期,差值将是一个负数。

?日期处理函数

日期函数用于处理Oracle 日期。所有日期函数都返回一个DATE 数据类型的值,只有MONTHS_BETWEEN 函数返回一个数字值。

? MONTHS_BETWEEN(date1, date2):计算date1和date2之间的月数。结果可以是正数,也可以是负数。如果date1晚于date2,则结果为正数;如果date1早于date2,则结果为负数。结果中的非整数部分代表月份的一部分。

? ADD_MONTHS( date, n):将n 个日历月添加到date。n 的值必须为整数,但可以为负数。

? NEXT_DAY(date, ' char'):计算date 之后一周内下一个指定日('char')的日期。char 的值可以是代表某一天的一个数字或者是一个字符串。

? LAST_DAY(date):计算包含date 的月份的最后一天的日期。

此列表只列出了部分可用日期函数。ROUND和TRUNC数字函数也可用来处理日期值,如下所示:

? ROUND( date[,' fmt ']) :返回舍入到由格式样式fmt 指定的单位的date。如果省略格式样式fmt ,则date 将舍入到最近的一天。

? TRUNC( date[, 'fmt ']) :返回包含时间部分的日期date,该日期已截断到由格式样式fmt 指定的单位。如果省略格式样式fmt ,则date 将截断到最近的一天。

使用日期函数

在示例中,ADD_MONTHS函数在提供的日期值“31-JAN-96”上添加了一个月,因而返回“29-FEB-96”。该函数将1996 年识别为闰年,因此返回二月份的最后一天。

如果将输入日期值更改为“31-JAN-95”,该函数将返回“28-FEB-95”。

例如,显示聘用时间不足150 个月的所有雇员的雇员编号、聘用日期、聘用月数、六个月复核日期、聘用日期之后的第一个星期五和聘用月份的最后一天。

hr@TEST0924> SELECT employee_id, hire_date, MONTHS_BETWEEN (SYSDATE, hire_date) TENURE, ADD_MONTHS (hire_date, 6) REVIEW, NEXT_DAY (hire_date,

'FRIDAY'), LAST_DAY(hire_date) FROM employees WHERE MONTHS_BETWEEN (SYSDATE, hire_date) < 150;

EMPLOYEE_ID HIRE_DATE TENURE

REVIEW NEXT_DAY(HIRE_DATE LAST_DAY(HIRE_DATE

----------- ------------------ ---------- ------------------ ------------------ ------------------

198 21-JUN-07 75.8933128

21-DEC-07 22-JUN-07 30-JUN-07

199 13-JAN-08 69.1513773

13-JUL-08 18-JAN-08 31-JAN-08

200 17-SEP-03 121

17-MAR-04 19-SEP-03 30-SEP-03

201 17-FEB-04 116

17-AUG-04 20-FEB-04 29-FEB-04

?使用ROUND 函数和TRUNC 函数处理日期

假设SYSDATE = '25-JUL-03':

可以使用ROUND和TRUNC函数处理数字和日期值。在处理日期时,这些函数会将日期舍入或截断到指定的格式样式。因此,可以将日期舍入到最近的年份或月份。如果格式样式为Month,则日期在1-15 时,返回当前月份的第一天。日期在16-31 时,返回下一月份的第一天。如果格式样式为Year ,则月份在1-6 时,返回当前年份的第一天。月份在7-12 时,返回下一年份的第一天。

示例:

将在2001年进入公司的所有雇员的聘用日期进行比较。使用ROUND和TRUNC函数显示雇员编号、聘用日期和起始月份。

hr@TEST0924> SELECT employee_id, hire_date,ROUND(hire_date, 'MONTH'), TRUNC(hire_date, 'MONTH') FROM employees WHERE hire_date LIKE '%01';

EMPLOYEE_ID HIRE_DATE ROUND(HIRE_DATE,'M TRUNC(HIRE_DATE,'M ----------- ------------------ ------------------ ------------------

102 13-JAN-01 01-JAN-01 01-JAN-01

?小结

单行函数可以嵌套到任意层。单行函数可以处理以下内容:

? 字符数据:LOWER、UPPER、INITCAP、CONCAT 、SUBSTR 、INSTR、LENGTH ? 数字数据:ROUND、TRUNC、MOD

? 日期值:SYSDATE、MONTHS_BETWEEN、ADD_MONTHS、NEXT_DAY 、LAST_DAY

请牢记以下内容:

? 日期值也可以使用算术运算符

? ROUND函数和TRUNC函数也可用来处理日期值

SYSDATE和DUAL

SYSDATE是一个日期函数,它会返回当前日期和时间。通常从称为DUAL 的单行公用表中选择SYSDATE。

C语言输入输出函数格式详解

1、输入和输出: 输入:输入也叫读,数据由内核流向用户程序 输出:输出也称写、打印,数据由用户程序流向内核 以下介绍一些输入输出函数,尽管都是一些有缺陷的函数,但比较适合初学者使用 2、printf用法(其缺陷在于带缓存) printf输出时必须加上\n(刷新缓存) 解释:第一幅图没有加'\n',不会刷新缓存区,则不会打印出来;第二幅图是因为主函数结束时刷新了缓存区,但由于没有换行符,所以没有换行便显示了后面的内容;第三幅图时正常打印。 变量定义的是什么类型,在printf打印时就需要选择什么格式符,否则会造成数据的精度丢失(隐式强转),甚至会出现错误

(1)格式输出函数的一般形式 函数原型:intprintf(char * format[,argument,…]); 函数功能:按规定格式向输出设备(一般为显示器)输出数据,并返回实际输出的字符数,若出错,则返回负数。 A、它使用的一般形式为:printf("格式控制字符串",输出项列表); B、语句中"输出项列表"列出要输出的表达式(如常量、变量、运算符表达式、函数返回值等),它可以是0个、一个或多个,每个输出项之间用逗号(,)分隔;输出的数据可以是整数、实数、字符和字符串。 C、"格式控制字符串"必须用英文的双引号括起来,它的作用是控制输出项的格式和输出一些提示信息,例如:

inti=97; printf("i=%d,%c\n",i,i);输出结果为:i=97,a 语句printf("i=%d,%c\n",i,i);中的两个输出项都是变量i,但却以不同的格式输出,一个输出整型数97,另一个输出的却是字符a,其格式分别由"%d"与"%c"来控制。 语句printf("i=%d,%c\n",i,i);的格式控制字符串中"i="是普通字符,他将照原样输出;"%d"与"%c"是格式控制符;"\n"是转义字符,它的作用是换行。 (2)格式控制 格式控制由格式控制字符串实现,格式控制字符串由3部分组成:普通字符、转义字符、输出项格式说明。 A、普通字符。普通字符在输出时,按原样输出,主要用于输出提示信息。(空格属于普通字符) B、转义字符。转义字符指明特定的操作,如"\n"表示换行,"\t"表示水平制表等。 \n 换行 \f 清屏并换页 \r 回车 \tTab符 \xhh表示一个ASCII码用16进表示,其中hh是1到2个16进制数 C、格式说明部分由"%"和"格式字符串"组成,他表示按规定的格式输出数据。格式说明的形式为:% [flags] [width] [.prec] [F|N|h|l] type||%[标志][输出最少宽度][.精度][长度]类型 各部分说明如下: a、[]表示该项为可选项,即可有可无,如printf("%d",100); b、%:表示格式说明的起始符号,不可缺少。 c、flags为可选择的标志字符,常用的标志字符有: - ——左对齐输出,默认为右对齐输出 + ——正数输出加号(+),负数输出减号(-),如省略正数的+默认不显示 0 ——输出数值时指定左面不使用的空位置自动填0,如省略表示指定空位不填 # ——对c、s、d、u类无影响;对o类,在输出时加前缀0(数字0,八进制表示符);对x类,在输出时加前缀0x(字母为小写);对X类,在输出时加前缀0X(字母为大写);对e,g,f类当结果有小数时才给出小数点。 d、width为可选择的宽度指示符。 用十进制正整数表示设置输出值得最少字符个数。不足则补空格,多出则按实际输出,默认按实际输出,例如: printf("%8d\n",100); (前面空五格)100 printf("%08d\n",100); (前面5个0)100 printf("%6d\n",100); (前面空三格)100 printf("%-8d\n",100); 100(后面空五格) printf("%+8\n",100); (前面空四格)+100 e、[.prec]为可选的精度指示符 用“小数点”加“十进制正整数”表示,对“整数”、“实数”和“字符串”的输出有如下

输入和输出函数的区别

输入输出函数区别如下: 一、printf 、sprintf、fprintf的区别 1.1 都是把格式好的字符串输出,只是输出的目标不一样: 1)、printf,是把格式字符串输出到标准输出(一般是屏幕、控制台,可以重定向),是和标准输出文件(stdout)关联的; 原型为: int printf(const char *format[,argument]...); 2)、sprintf,是把格式字符串输出到指定的字符串中,所以参数比printf多一个char*。这是目标字符串地址; 原型为:int sprintf(char *buffer,const char *format[,argument]...); 3)、fprintf,是把格式字符串输出到指定文件设备中,fprintf是格式化输出到一个stream,通常是到文件,所以参数比printf多一个文件指针FILE*; 原型为:int fprintf(FILE *stream,const char *format[,argument]...); 1.2. Fprintf c语言把文件看作一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组成形式,可分为ASCLL文件和二进制文件。ASCLL文件又称为文本文件(text),它的每个字节放一个ASCLL代码,代表一个字符。二进制文件是内存中的数据按其在内在中的存储形式原样输出到磁盘上存放。 1).fprintf(fp,"%d",buffer);是将格式化的数据写入文件; fprintf(文件指针,格式字符串,输出表列); fwrite(&buffer,sizeof(int),1,fp); 是以二进位方式写入文件 fwrite(数据,数据类型大小(字节数),写入数据的最大数据,文件指针); 由于fprintf写入是,对于整数来说,一位站一个字节, 比如1,占1个字节; 10,占2个字节; 100,占3个字节; 10000,占5个字节;所以文件的大小会随数据的大小而改变,对大数据空间占用很大。而fwrite是按二进制写入,所以写入数据所占空间是根据数据类型来确定,比如int的大小为4个字节(一般32位下),那么整数10所占空间为4个字节,100/10000所占空间也是4个字节,所以二进制写入比格式化写入更省空间。因此, 对于1 2 3 4 5 6 7 8 9 0 十个整数,用fprintf写入时,占10个字节;而用fwrite写入时,占40个字节。 对于100 101 102 103 104 105 106 107 108 109 110 这十个整数,用fprintf写入时,占30个字节;而用fwrite写入时,占40个字节。 对于10000 10100 10200 10300 10400 10500 10600 10700 10800 10900 1 1000 这十个整数,用fprintf写入时,占50个字节;而用fwrite写入时,还是

格式化输入、输出函数

格式化输入/输出函数 格式输出函数(printf) 格式字符表 格式字符说明 d或i 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀0x),对于x用abcdef输出;对于X用ABCDEF输出 u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数,隐含输出6位小数 e,E 以指数形式输出单、双精度实数,数字部分小数位数为6位小数,指数部分占5位,用“E”时,指数以大写表示 g,G 以%f或%e中较短的输出宽度输出单、双精度实数,不输出无意义的0,用“G” 时,则指数以大写表示 c 输出单个字符 s 输出字符串 p 输出标量的内存地址 未指定宽度和指定输出宽度时的输出结果 输出语句输出结果 printf(“%3d\n”,4321); 4321(按实际位数输出) printf(“%f\n”,123.54); 123.540000(按实际需要宽度输出) printf(“%12f\n”,123.54); 凵凵123.540000(输出右对齐,左边填空格) printf(“%e\n”,123.54); 1.235400e+002(按实际需要宽度输出) printf(“%14e\n”,1213.54); 凵1.235400e+002(输出右对齐,左边填空格) printf(“%g\n”,123.5); 123.5(%f格式比采用%e格式输出宽度小) printf(“%8g\n”,123.5); 凵凵凵123.5(输出右对齐,左边填空格) 指定精度时的输出结果 输出语句输出结果 printf(“%8.3f\n”,123.55); 凵123.550 printf(“%8.1f\n”,123.55); 凵凵凵123.6 printf(“%8.0f\n”,123.55); 凵凵凵凵凵124 printf(“%g\n”,123.56789); 123.568 printf(“%.7g\n”,123.56789); 123.5679 printf(“%.5s\n”,”abcdefg”); abcde 注:在VC中float类型有7位有效数字,double类型有16位有效数字

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

C 语言输入输出函数printf 与scanf 的用法格式 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式控制字符, 以"%"开始, 后跟一个或几个控制字符,用来确定输出内容格式。 参量表是需要输出的一系列参数,可以是常量、变量或表达式,其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 例如: printf("a=%d b=%d",a,b); 1. 格式控制符Turbo C 2.0提供的格式化规定符如下: 格式控制字符 参量表 正常字符

━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e,%E 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的整数 %g,%G 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ printf的附加格式说明字符 字符说明 l 用于长整型数或双精度实型,可加在格式 符d、o、x、u和f前面 m(代表一个正整数据最小输出显示宽度

关于输入输出函数

1.输入字符串──gets()函数 (1)调用方式:gets(字符数组) (2)函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去,并用空字符(\0)代替s的换行符。gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。如果调用成功,则返回字符串参数s;如果遇到文件结束或出错,将返回null。该函数输入的字符串中允许包含空格,而scanf()函数不允许。 2.输出字符串──puts()函数 (1)调用方式:puts(字符数组) (2)函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。所以用puts()函数输出字符串时,不要求另加换行符。字符串中允许包含转义字符,输出时产生一个控制操作。该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。 3.字符串比较──strcmp()函数 (1)调用方式:strcmp(字符串1 ,字符串2)其中“字符串”可以是串常量,也可以是1维字符数组。 (2)函数功能:比较两个字符串的大小。如果:字符串1=字符串2,函数返回值等于0;字符串1字符串2,函数返回值正整数。如果一个字符串是另一个字符串从头开始的子串,则母串为大。不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。 4.基本输入/输出函数包括: 字符的输入/输出函数(getchar、putchar) 字符串输入/输出函数(gets、puts) 格式化输入/输出函数(scanf、printf) 1.字符的输入/输出函数 库函数getchar 函数原型:int getchar(void) 参数说明:无。 功能说明:从标准输入设备上接收一个字符。 返回值:输入成功时返回字符的ASCII编码值,否则返回-1。 库函数putchar 函数原型:int putchar(int ch) 参数说明:ch 被输出的字符的ASCII编值。 功能说明:向标准输出设备上输出一个字符。 返回值:输入成功时返回该字符的ASCII编码值,否则返回-1。 2.字符串输入/输出函数 库函数gets 函数原型:char* gets(char *s)

标准输入输出函数

printf 函数和scanf 函数 1. printf 函数是格式化输出函数,输出设备是显示器。其格式是: printf(“输出格式控制字符串”, 输出项1,输出项2,… , 输出项n); 【例1】printf(“Hello ,everyone.”); 输出: Hello ,everyone. 【例2】int x=10;int y=20;printf(“%d add %d is %d ”, x, y, x+y); 输出: 10 add 20 is 30 【例3】printf(“a=%d\nb=%f ”, 2+3, 5.34); 输出: (1) 普通字符照原样输出; (2) %开始的 %d, %f 是一个整体,叫格式说明符,是对后面对应输出项的说明,同时也是输出项 在输出格式控制字符串中的占位符。 描述输出项的格式 常量、变量或表达式;输出项之间用逗号间隔开 a=5 b=5.340000

(3)%f, %d不是随便乱用的,它要和输出项的一一对应(包括个数、类型)。 (4)%7.2f %4d 是加了修饰的格式说明符。 2.scanf函数是格式化输入函数,功能是通过键盘为变量输入数据。其格式是: scanf(“输入格式控制字符串”, &变量1,&变量2,… , &变量n); 【例1】int a; float b; scanf(“%d%f”,&a,&b); 输入:3 4.5↙ 【例2】double x1, x2; scanf(“%lf,%lf”,&x1,&x2); 输入:2.5 , 3.5 ↙ 【例3】int a; scanf(“a=%d”, &a); 输入:a=10↙ 【例4】int a; scanf(“%d\n”,&a); 输入不好控制,容易出错! (1)输入变量和格式说明符要一一对应(个数,类型)! (2)格式说明符也不要修饰。

C语言中的输入输出函数总结

putchar ():把变量中的一个字符常量输出到显示器屏幕上; getchar ();从键盘上输入一个字符常量,此常量就是该函数的值; printf ();把键盘中的各类数据,加以格式控制输出到显示器屏幕上; scanf ();从键盘上输入各类数据,并存放到程序变量中; puts ():把数组变量中的一个字符串常量输出到显示器屏幕上; gets ():从键盘上输入一个字符串常量并放到程序的数组中. sscanf(); 从一个字符串中提取各类数据。 putchar() 输出一个字符 getchar() 输入流中获取一个字符 例如: char c = getchar(); putchar(c); 格式化输入输出scanf()和printf()是最有用的,所以重点讲一下。 printf(): 一般形式: printf("格式控制".输出列表); eg : printf("a=%d,b=%f,c=%c\n",a,b,c); 1;格式控制. 格式控制是用双引号括起来的字符串,也称"转换控制字符串",它包含以下两部分信息. 格式说明:由"%"和格式字符组成,如%d,%f,%c,他的作用是把输出数据转换为指定格式输出,格式的说明总是由"%"字符开始的. 普通字符:需要原样输出的字符,或者是一些有特殊含义的字符,如\n,\t。 2;输出列表 就是需要输出的一些数据,也可以是表达式,如果在函数中需要输出多个变量或表达式,则要用逗号隔开. 一些特殊字符的输出: 单引号,双引号,和反斜杠的输出在前面加转义字符”\” 如:”\’” , “\””, “\\” %的输出用两个连在一起的%%,即printf(“%%”); 常用的格式说明如下: 格式字符 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀O) x 以十六进制形式输出无符号整数(不输出前缀OX) u 以十进制形式输出无符号整数 f 以小数形式输出单精度实数 lf 以小数形式输出双精度实数

c语言输入输出函数知识点总结

c语言输入输出函数知识点总结 1.I/O input output(输入端,输出端) 输入:从计算机向外部输出设备(显示器,打印机)输出数据。 输出:从输入设备(键盘、鼠标、扫描仪)向计算机输入数据。 2.C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数实现的。 3.字符输出函数一般形式:putchar(a);a可以是字符型变量、整型变量、字符常量、整型常量。函数作用:向终端输出一个字符。 4.字符输入函数一般形式:a=getchar( );函数作用:从终端输入一个字符。函数值:从输入设备得到的字符。 5.格式输出字符 %d:以十进制输出整数;%o:以八进制形式输出整数;%c:以字符形式输出一个字符;%s:输出字符串;%f:以小数形式输出单、双精度数,隐含输出六位小数。 6.getchar一次只能输入一个字符,有几个getchar()就输入几个字符,多输入的计算机不能识别。 7.getchar()输入的时候,空格键、Enter键、Tab键不能乱用,他们都当成字符对待。 printf("%d,%c,%f,%o,%x,%s",a,b,c,d,e,f); .......................................... 8.格式控制都是小写字母; 9.格式控制与后面要输出的变量是一一对应;................................................... 10.printf("%md",a); 1).m是整数; 2).m是指输出的结果占m列宽度; 3).m是正整数的话,输出结果差几列左补几个空格; m是负整数的话,输出结果差几列右补几个空格; 4).如果m的绝对值小于原来数的宽度,则原样输出。................................................... 11.printf("%m.nf",a); 1).m是指输出占几列宽度,n是指输出结果小数点后保留几位有效数字; 2).m是正整数的话,输出结果差几列左补几个空格; m是负整数的话,输出结果差几列右补几个空格; 3).printf("%2.5f",a); m

C语言输入输出函数

1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入 设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。 另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度

C语言格式输入函数SCANF()详解

scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf函数的一般形式 scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列); 其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。 例如:&a、&b分别表示变量a和变量b的地址。 这个地址就是编译系统在内存中给a、b变量分配的地址。在C 语言中,使用了地址这个概念,这是与其它语言不同的。应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。 变量的地址和变量值的关系 在赋值表达式中给变量赋值,如: a=567; 则,a为变量名,567是变量的值,&a是变量a的地址。 但在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的

地址。 【例4-7】 #include int main(void){ int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c); return0; } 在本例中,由于scanf函数本身不能显示提示串,故先用printf 语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,等待用户输入。在scanf语句的格式串中由于没有非格式字符在 “%d%d%d”之间作输入时的间隔,因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的间隔。如: 789 或 7 8 9 格式字符串 格式字符串的一般形式为:

实验二数据类型、输入输出函数的使用

实验二数据类型、输入输出函数的使用【实验内容】 1、数据类型的基本使用方法; 1、输出格式控制字符及输出函数的使用; 2、输入格式控制字符及输入函数的使用。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、内容与步骤 1、写出下列程序的运行结果,并进行说明: ⑴ex3_1.c /*整形数据的输出*/ #include main() { int a=12; long b=2269978; printf("a=%d,a=%6d,a=%-6d,a=%06d\n",a,a,a,a); printf("b=%8ld\n",b); printf("%d,%o,%x,%u\n",a,a,a,a); printf("\n"); } ⑵ex3_2.c /*浮点数的输出*/ #include main() { float x=1234.567; double y=1234.5678; printf("%f,%f\n",x,y); /* %f的精度缺省值是6 */ printf("%8.3f,%10.3f\n",x,y); printf("%e\n",x); /* %e的精度缺省值是5 */ } ⑶ex3_3.c /*字符的输出*/ #include main() {char c='W'; int i=87;

printf("%c,%d\n",c,c); printf("%d,%c\n",i,i); printf("%-5c,%5c\n",c,c); } ⑷ex3_4.c /*字符串的输出*/ #include main() { printf("%s,%12s,%8s\n","C LANGUAGE","C LANGUAGE","C LANGUAGE"); printf("%-12.8s,%12.8s\n","C LANGUAGE","C LANGUAGE"); } (5)ex3_5.c #include main() { int x,y; float a,b; char num1,num2; scanf("x=%d,y=%d",&x,&y); scanf("%f,%e",&a,&b); scanf("%c%c",&num1,&num2); printf("x=%d,y=%d,a=%f,b=%f,num1=%c,num2=%c\n",x,y,a,b,num1,num2); } (6)ex3_6.c #include main() { int n1,n2; char c1,c2; c1=getchar(); c2=getchar(); n1=c1-'0'; n2=c2-'0'; printf("%d,%d\n",n1,n2); putchar(n1); putchar('\n'); putchar(n2);

格式化输入、输出函数的使用

南京信息工程大学实验(实习)报告 实验(实习)名称 C语言实验日期 4.11 得分指导教师刘文杰 院大气物理专业安全工程年级 16级班次一班姓名刘亚栎学号 20161395007 1.实验目的: 1)掌握格式字符使用的方法。 2)掌握printf()进行格式化输出的方法。 3)掌握scanf()进行格式化输入的方法。 2.实验内容: (1)输入如下程序,观察运行的结果。 #include int main() { int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello,world"; int y=3,z=4; printf("%d %d\n",y,z); printf("y=%d,z=%d\n",y,z); printf("%8d,%2d\n",x,x); printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n",ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3\n",a,a,a,a,a); return 0; } (2)输入下面程序,观察调试信息。 #include int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d%d%d",a1,a2,a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%f,%lf",&x,&y); printf("%f,%lf\n",x,y); return 0;

C语言中文件_数据的输入输出_读写

C语言中文件,数据的输入输出,读写. 文件是数据的集合体,对文件的处理过程就是对文件的读写过程,或输入输出过程。 所谓文件是指内存以外的媒体上以某种形式组织的一组相关数据的有序集合。文件分类: 顺序文件,随机文件。 文本文件和二进制文件。 文本文件也称为ASCII文件,在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。 文本文件可以在屏幕上按字符显示,源程序文件就是文本文件,由于是按字符显示,所以能读懂文件内容。 二进制文件是按二进制编码方式来存放的。这里主要讨论文件的打开,关闭,读,写,定位等操作。 文件的存取方法 C程序的输入输出(I/O)有两种方式:一种称为标准I/O或流式I/O,另一种称为低级I/O。流式I/O是依靠标准库函数中的输入输出函数实现的。低级I/O利用操作系统提供的接口函数(称为底层接口或系统调用)实现输入输出,低级I/O 主要提供系统软件使用。 在C语言中用一个FILE类型的指针变量指向一个文件,(FILE类型是系统在stdio.h中定义的描述已打开文件的一种结构类型),这个指针称为文件指针。FILE *指针变量标识符; 如 FILE *fp; 文件的打开与关闭 所谓打开文件,指的是建立文件的各种有关信息,并使文件指针指向该文件,以便对它进行操作。 关闭文件则是断开指针与文件之间的联系,也就禁止再对该文件进行操作。 1、fopen 函数原型:FILE *fopen(const char *filename,const char *mode); Fopen函数用来打开一个文件,前一部分用来说明文件路径及文件名,后一部分mode指出了打开文件的存取方式;返回值是被打开文件的FILE型指针,若打开失败,则返回NULL。打开文件的语法格式如下: 文件指针名=fopen(文件名,使用文件方式); 文件指针名必须被说明为FILE类型的指针变量。 FILE *fp; fp=fopen(“C:\\Windowss\\abc.txt”,”r”); 注意用两个反斜杠\\来表示目录间的间隔符。 存取文件的模式是一个字符串,可以由字母r,w,a,t,b及+组合而成,各字符的含

C语言输入输出函数全解

文章1 Turbo C2.0标准输入输出函数和文件的输入输出函数。 通过本节的学习可以使读者掌握Turbo C2.0的屏幕输出、键盘输入输出以及磁盘文件的读写函数 1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和 scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入 设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出 参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想 不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

C语言标准输入输出详解

C CC C输入输出函数 输入输出函数输入输出函数 输入输出函数 本节主要介绍Turbo C2.0标准输入输出函数和文件的输入输出函数。通过本 节的学习可以使读者掌握Turbo C2.0的屏幕输出、键盘输入输出以及磁盘文件的 读写函数, 并能开始进行一些简单的程序的编写。 控制流程语句主要包括: 条件语句、循环语句和开关语句。 1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和 scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入

设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按 规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些 字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个 规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串 所说明的输出 参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则 将会出现意想 不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数

C语言格式化输入输出

C语言格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用—————————————————————————— %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值

%e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。 另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。 如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。 例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。 (2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。 例如: %ld 表示输出long整数 %lf 表示输出double浮点数 (3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。 例如: %-7d 表示输出7位整数左对齐 %-10s 表示输出10个字符左对齐 2. 一些特殊规定字符

C输入输出函数

C输入输出函数 本节主要介绍Turbo C2.0标准输入输出函数和文件的输入输出 函数。通过本 节的学习可以使读者掌握Turbo C2.0的屏幕输出、键盘输入输出以 及磁盘文件的 读写函数, 并能开始进行一些简单的程序的编写。 控制流程语句主要包括: 条件语句、循环语句和开关语句。 1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和 scanf(), 这两个函数可以在标准输入输出设备上以 各种不同的格式读写数据。 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用 来从标准输入 设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按 规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些

字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出 参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想 不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数

C语言 输入输出函数的输出格式

C语言基础-- 输入输出函数及控制流程语句(输出格式) 【转:https://www.360docs.net/doc/756852370.html,/ilotus_y/blog/item/8399f9c29295fe30e4dd3ba2.html】 C语言基础-- 输入输出函数及控制流程语句(输出格式) 2008年05月26日星期一13:51 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━ 符号作用 ─────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。 如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。 例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。

相关文档
最新文档