《吉大康辉老师讲C语言》第十章: IO与有关库函数.ppt
文本预览下载声明
第十章 I/O及有关库函数10.1 控制台I/O 标准C语言的系统函数库中包括控制台I/O的基本例程。 在使用控制台I/O函数时,常常涉及到标准输入输出头文件stdio.h。 在用户程序中应该使用预编译命令将头文件包含进来,即在程序中加进语句 #include “stdio.h” 10.1.1 单个字符的输入输出 getchar(),一次从标准输入读入一个字符,这是无参调用,返回值是读得字符的ASCII码值。例如: c=getchar(); putchar(c),在标准输出上输出一个字符。 [例10.1]把输入的一串字符中的大写字母转换为小写字母输出。 #include “stdio.h” main() { int c; whlie((c=getchar())!=EOF) putchar(isupper(c)?tolower(c):c); } 10.1.1 单个字符的输入输出 [例10.2]下面程序读进两个字符并按相反的次序显示,两个字符由制表符隔开。 #include stdio.h main() { int c,d; c=getchar(); d=getchar(); putchar(d); putchar(‘\t’); putchar(c); putchar(‘\n’); } 10.1.2 行输入和行输出 puts(string):把一个字符串送到标准输出上 string :指向一个字符串的指针。 字符串是以‘\0’为终结符的字符数组。 在输出字符串时,如系统检查出某种错误,则返回文件结束标志EOF值。 puts在输出字符串时,将串结尾‘\0’用换行符‘\n’替换。 输出字符串时总会导致换行。 10.1.2 行输入和行输出 gets(string): 从标准输入上接收一个字符串 string 是一个指向字符串的指针。 gets从用户终端上取得那个串的内容,并返回指向该字符串的指针。 该函数从用户终端上取得一个以换行符结束的字符串,并用‘\0’代替该换行符。 如果gets碰上一个出错条件,它就返回一个空串。 如果仅仅在终端上敲一次回车键,它也返回一个空串。 10.1.2 行输入和行输出 [例10.3]从标准输入设备上读进许多字符行,直到遇见空行为止。然后输出最长行。假设一行不能超过80个字符。 #include stdio.h main() {char longest[81],current[81]; int curlen,lonlen; if(gets(longest)==NULL) return; lonlen=strlen(longest); while(gets(current)!=NULL(curlen=strlen(current))) if(curlenlonlen) {strcpy(longest,current); lonlen=curlen; } puts(longest); } 10.1.3 按格式输入和输出 printf和scanf是构成更为复杂,运用更为灵活的控制台I/O函数。 printf函数的一般格式为: printf(格式控制,输出列表) “格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包括两种信息: 格式说明,由“%”和格式字符组成。 将输出的数据转换为指定的格式输出。 格式说明符总是由“%”开始的。 普通字符,即需要原样输出的字符。 10.1.3 按格式输入和输出 “输出列表”是需要输出的一些数据,可以是任意表达式。 对于printf而言,可以输出多个表达式的值,按控制输出的格式符的出现次序,依次输出各个表达式的值。有以下几种格式字符: d格式符,用来输出十进制整数。有以下几种用法: %d:按整型数据的实际长度输出。 %md:m为指定的输出字段的宽度。 如果数据的位数小于m,则左端补以空格, 若大于m,则按实际位数输出。 10.1.3 按格式输入和输出 %ld:用于输出长整型数据。 输出长整型数据时,采用%d格式就会发生错误。 o格式符,按八进制数形式输出整数, 输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。 对长整型数可以用“%lo”格式输出。 可以指定字段宽度。 x格式符,按十六进制数形式输出整数。 不会出现负十六进制数。 可以采用“%lx”输出长整型数, 可以指定输出字段的宽度。 u格式符,以十进制的形式输出unsigned型数据。 10.1.3 按格式输入和输出 c格式符,用来输出一个字符
显示全部