常用的输入和输出函数 C语言的库函数 stdio. h中,已经为用户编制了很多 输入输出函数,其中最常用的是: 格式化输出函数 printf(0 格式化输入函数 scanf0 另外, getto函数用来输入一个字符串 puts函数用来输出一个字符串 getcha()函数用来输入一个字符 putchar0函数用来输出一个字符 以及gech0和 getche0两函数主要用来作为程序运行的 暂停功能
1 常用的输入和输出函数 C语言的库函数stdio.h中,已经为用户编制了很多 输入输出函数,其中最常用的是: 格式化输出函数printf() 格式化输入函数scanf() 另外,gets()函数用来输入一个字符串 puts()函数用来输出一个字符串 getchar()函数用来输入一个字符 putchar()函数用来输出一个字符 以及getch()和getche()两函数主要用来作为程序运行的 暂停功能
Pn函数 形式: print("输出格式",输出列表) 其中“输岀格式″主要由格式说明、按原样输岀的 字符或转义字符组成。格式说明由%开头,后跟格 式字符. 格式字符 含义 %d输出十进制整数 %输出十六进制整教 au|输出无符号十进制数 输出单个字符 s输出字符串 %/of 以小数点形式输出实数,用 于控制foat和 double类型的 数据的输出
2 1. printf()函数 形式: printf("输出格式",输出列表); 其中“输出格式”主要由格式说明、按原样输出的 字符或转义字符组成。格式说明由%开头,后跟格 式字符. 格式字符 含义 %d 输出十进制整数 %x 输出十六进制整数 %u 输出无符号十进制数 %c 输出单个字符 %s 输出字符串 %f 以小数点形式输出实数,用 于控制float和 double类型的 数据的输出
注意,在d,f,c和s前面可加输出宽度m, 即输出格式写成md,%omf,%mc,%ms。不加 输出宽度或输出宽度小于数据的实际宽度 时数据按实际宽度输出。输出实数时还可 以规定小数点后的位数n,即输出格式写成 %mnf。输岀字符串时还可以规定输岀字符 的个数n,即输出格式写成%m.nS
3 • 注意,在d,f,c和s前面可加输出宽度m, 即输出格式写成%md,%mf,%mc,%ms。不加 输出宽度或输出宽度小于数据的实际宽度 时数据按实际宽度输出。输出实数时还可 以规定小数点后的位数n,即输出格式写成 %m.nf。输出字符串时还可以规定输出字符 的个数n,即输出格式写成%m.ns
例inta=10; float b=40. 8 char c=w*d=abcdef printf( %5d%83f% 3c%-5d%8sn", a, b,c, a, d) 变量a的输出宽度占5格;变量b占8格(其中小数点后 保持3位);变量c占3格;变量d占8格。结果是 1040.800w10 abcdef 这里下划线_代表空格,输出宽度无符号或加十”号 是右对齐,加””号是左对齐。其它格式字符还有 %u,%0,9%x,%e,%og,%oe和%of等。以及%%表示输出符号% 注意:输出长整型时,格式字符前要加l(小写);而 输出foat型和 double型数据时,都用格式字符%of;输出 长双精度( ong double)实数时格式字符前要加L(大写)
4 例 int a=10; float b=40.8; char c='w',*d="abcdef"; printf("%5d%8.3f%3c%-5d%8s\n",a,b,c,a,d); 变量a的输出宽度占5格;变量b占8格(其中小数点后 保持3位);变量c占3格;变量d占8格。结果是: _ _ _10_ _40.800_ _w10_ _ _ _ _abcdef 这里下划线_代表空格,输出宽度无符号或加”+” 号 是右对齐,加”-”号是左对齐。其它格式字符还有 %u,%o,%x,%e,%g,%e和%f等。以及%%表示输出符号%。 注意:输出长整型时,格式字符前要加l(小写);而 输出float型和double型数据时,都用格式字符%f;输出 长双精度(long double)实数时格式字符前要加L(大写)
2. scanf0函数 scanf0用来实现键盘输入,一般形式是: scanf("输入格式地址列表); 其中,输入格式的内容跟 printf中的输岀格式相似 (但是不用转义字符,也不能用“n的形式),如: 输入十进制整数 %/of 以小数点形式输入实数 Oc 输入单个字符 OS 输入字符串 0c9/E,g%G与%f作用相同 u,%00,%x分别用来输入无符号十进制,无符 号八进制,无符号十六进制整数
5 •2. scanf()函数 scanf()用来实现键盘输入,一般形式是: scanf("输入格式",地址列表); 其中,输入格式的内容跟printf()中的输出格式相似 (但是不用转义字符,也不能用“.n ”的形式),如: %d 输入十进制整数 %f 以小数点形式输入实数 %c 输入单个字符 %s 输入字符串 %e,%E,%g,%G与%f作用相同 %u,%o,%x 分别用来输入无符号十进制,无符 号八进制,无符号十六进制整数
注意: scanfe0中的变量要求表明它的地址。例 int a: float b scan f( %/od%of, &a, &b) printf(a=ood, b=o n a 结果是: 输入1040.8 输出a=10,b=40.8 输入数据用空格作为分隔符。其中”%d”和”%f是 格式说明。在输入变量的地址列表中没有字符型变量 的情况下,输入变量的格式说明可以连着写,输入数 据时用空格隔开
6 注意: scanf()中的变量要求表明它的地址。例 int a; float b; scanf("%d%f", &a , &b); printf("a=%d,b=%f\n" , a , b); 结果是: 输入 10 40.8↓ 输出 a=10,b=40.8 输入数据用空格作为分隔符。其中”%d”和”%f”是 格式说明。在输入变量的地址列表中没有字符型变量 的情况下,输入变量的格式说明可以连着写,输入数 据时用空格隔开
般输入语句的格式中不使用照原样输入的字符, 而是用输出语句输出一个带提示信息的字符串 printf(please input a and b: \n) 根据提示信息,用户输入数据。 注意:输入长整型时,格式字符前加l(如%ld,%lo, x);输入 double型数据时格式字符前也要加l(如 oulf,%le);在输入 long double型数据时,则格式字 符前要加L(大写)(如%f,%e)。 维字符数组名和指针变量名本身就是地址,因此 在 scant函数的地址列表中可以直接使用,若是数组 名输入的字符串储存在字符数组中;若是字符指针, 则该字符指针指向已输入的字符串(即字符指针得到 的是输入字符串的首地址)
7 一般输入语句的格式中不使用照原样输入的字符, 而是用输出语句输出一个带提示信息的字符串: printf(“Please input a and b:\n ”); 根据提示信息,用户输入数据。 注意:输入长整型时,格式字符前加l(如%ld,%lo, %lx);输入double型数据时格式字符前也要加l(如 %lf,%le);在输入long double型数据时,则格式字 符前要加L(大写)(如%Lf,%Le)。 一维字符数组名和指针变量名本身就是地址,因此 在scanf()函数的地址列表中可以直接使用,若是数组 名输入的字符串储存在字符数组中;若是字符指针, 则该字符指针指向已输入的字符串(即字符指针得到 的是输入字符串的首地址)
°3.puts()函数 puts()函数用来输出字符串并换行,一般形式是: puts(一维字符数组名或字符指针) 如:puts()其作用与pint(“%s\n,p);相同,其中p是 字符数组名或字符指针 4.gets()函数 ets()函数用来从键盘读取字符串直到回车结束,但 不接受回车符。一般形式是: gets(字符数组名或字符指针); 如:gets(P);它与 scanf(%os"p);相似,但又不完全相同, 用 scanfe("%os3p)输入字符串时空格认为是输入结束,但 gets()函数将接收字符串(包括空格)直到回车为止
8 •3. puts( )函数 puts( )函数用来输出字符串并换行,一般形式是: puts(一维字符数组名或字符指针); 如:puts(p);其作用与printf(“%s\n ”,p);相同,其中p是 字符数组名或字符指针。 •4. gets( )函数 gets( )函数用来从键盘读取字符串直到回车结束,但 不接受回车符。一般形式是: gets(字符数组名或字符指针); 如:gets(p);它与scanf(“%s ”,p);相似,但又不完全相同, 用scanf(“%s ”,p)输入字符串时空格认为是输入结束,但 gets(p)函数将接收字符串(包括空格)直到回车为止
例1puts(函数和gets(函数的应用 # stdio h maIn char a[20], b[20], p=b gets(a) gets(p) puts(a); puts(p) 程序运行情况是 输入: My name is Way hai↓ Hello! Way Hail 输出: My name is Way Hai Hello! Way hai 9
9 • 例1 puts()函数和gets()函数的应用。 • #include "stdio.h" • main( ) • { char a[20], b[20], *p=b ; • gets(a); gets(p); • puts(a); puts(p); • } • 程序运行情况是 • 输入: My name is Way Hai ↓ • Hello! Way Hai↓ • 输出: My name is Way Hai • Hello! Way Hai
5.其它输入输出函数 1 putchar(函数和 getchar(函数 ≯ putchar()函数用来输出一个字符,其使用形式是 putchar(字符变量或常量); 如: putchar((ch);其中ch是一个字符型变量,函数的作用 与 printf( %/oc”,ch)相同。 又如: putcha(h');显然括号中的h是字符常量 getchar()函数用来从键盘读入一个字符。其使用形式是: 字符变量= getchar(); 其中[字符变量=是可选项,可以有也可以没有。 注意该函数调用时没有参数。 10
10 •5. 其它输入输出函数 •1.putchar( )函数和getchar( )函数 ➢ putchar( )函数用来输出一个字符,其使用形式是: putchar(字符变量或常量); 如:putchar(ch);其中ch是一个字符型变量,函数的作用 与printf(“%c ”,ch)相同。 又如:putchar(‘h’);显然括号中的‘h’是字符常量。 ➢ getchar( )函数用来从键盘读入一个字符。其使用形式是: [字符变量=]getchar( ); 其中[字符变量=]是可选项,可以有也可以没有。 注意该函数调用时没有参数