1
常用的输入和输出函数
C语言的库函数 stdio.h中,已经为用户编制了很多输入输出函数,其中最常用的是:
格式化输出函数 printf()
格式化输入函数 scanf()
另外,gets()函数用来输入一个字符串
puts()函数用来输出一个字符串
getchar()函数用来输入一个字符
putchar()函数用来输出一个字符以及 getch()和 getche()两函数主要用来作为程序运行的暂停功能。
2
1,printf()函数形式,printf("输出格式 ",输出列表 );
其中,输出格式,主要由格式说明、按原样输出的字符或转义字符组成。格式说明由 %开头,后跟格式字符,
格式字符 含义
%d 输出十进制整数
%x 输出十六进制整数
%u 输出无符号十进制数
%c 输出单个字符
%s 输出字符串
%f 以小数点形式输出实数,用于控制 float和 double类型的数据的输出
3
注意,在 d,f,c和 s前面可加输出宽度 m,
即输出格式写成 %md,%mf,%mc,%ms。不加输出宽度或输出宽度小于数据的实际宽度时数据按实际宽度输出。输出实数时还可以规定小数点后的位数 n,即输出格式写成
%m.nf。输出字符串时还可以规定输出字符的个数 n,即输出格式写成 %m.ns。
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(大写 )。
5
2,scanf()函数
scanf()用来实现键盘输入,一般形式是:
scanf("输入格式 ",地址列表 );
其中,输入格式的内容跟 printf()中的输出格式相似
(但是不用转义字符,也不能用,,n”的形式 ),如:
%d 输入十进制整数
%f 以小数点形式输入实数
%c 输入单个字符
%s 输入字符串
%e,%E,%g,%G与 %f作用相同
%u,%o,%x 分别用来输入无符号十进制,无符号八进制,无符号十六进制整数 。
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”是格式说明 。 在输入变量的地址列表中没有字符型变量的情况下,输入变量的格式说明可以连着写,输入数据时用空格隔开 。
7
一般输入语句的格式中不使用照原样输入的字符,
而是用输出语句输出一个带提示信息的字符串:
printf(“Please input a and b:\n”);
根据提示信息,用户输入数据 。
注意:输入长整型时,格式字符前加 l( 如 %ld,%lo,
%lx) ;输入 double型数据时格式字符前也要加 l( 如
%lf,%le) ;在输入 long double型数据时,则格式字符前要加 L(大写 )( 如 %Lf,%Le) 。
一维字符数组名和指针变量名本身就是地址,因此在 scanf()函数的地址列表中可以直接使用,若是数组名输入的字符串储存在字符数组中;若是字符指针,
则该字符指针指向已输入的字符串(即字符指针得到的是输入字符串的首地址)。
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)函数将接收字符串 ( 包括空格 ) 直到回车为止 。
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
10
5,其它输入输出函数
1.putchar( )函数和 getchar( )函数
putchar( )函数用来输出一个字符,其使用形式是:
putchar(字符变量或常量 );
如,putchar(ch);其中 ch是一个字符型变量,函数的作用与 printf(“%c”,ch)相同 。
又如,putchar(?h?);显然括号中的 ‘ h?是字符常量 。
getchar( )函数用来从键盘读入一个字符 。 其使用形式是,
[字符变量 =]getchar( );
其中 [字符变量 =]是可选项,可以有也可以没有 。
注意该函数调用时没有参数 。
11
2,getch( )函数和 getche( )函数这两个函数都是从键盘读入一个字符,其使用形式与 getchar( )相同:
[字符变量 =]getch( );
[字符变量 =]getche( );
前者从键盘读入一个字符但是不显示在屏幕上;
后者从键盘读入一个字符且显示在屏幕上 。