C程序设计简明教程(第二版)
上QQ阅读APP看书,第一时间看更新

1.3 格式化输入/输出

1.3.1 数据的输入/输出

【例1.3】阅读并运行程序,分析结果了解输入/输出格式的使用。

程序代码如下:

程序功能是从键盘输入两个整数,输出两数之和。scanf("%d,%d",&a,&b);语句完成输入,参数“"%d,%d",&a,&b”表示以十进制形式从键盘输入两个数存放在变量a、b内;printf("a+b=%d",sum);语句输出计算结果,参数“"a+b=%d",sum”表示在显示屏上输出字符“a+b=”,再跟上sum中的内容。

1.3.2 格式化输出函数printf()

printf()函数的功能是按照给定的格式输出数据,一般形式为:

printf("输出格式字符串",输出项);

其中,输出格式字符串决定了数据的输出格式,“%”与后面的格式符规定了对应输出项的输出格式,其他符号为非格式符按原样输出。

例如:若a=34,b=12,sum是a与b的和,则语句printf("a+b=%d",sum);的输出结果为a+b=46。

其中,“%d”是输出格式,对应输出项sum,字符串“a+b=”是非格式符,按原样输出。

printf()函数常用格式符如表1-1所示。

表1-1 printf()函数常用格式符

(1)%d按整型数据的实际位数输出。若要控制输出数据的宽度,可以在d前加一个数字,如printf("%5d,%5d",a,b);,若a=123,b=121345,则输出结果为□□123,121345。数据a不足5位,左边用空格补足5位;数据b多于5位,按实际位数输出。

(2)%c输出一个字符。若以字符形式输出一个整数,则输出的是该整数对应的字符。如printf("%c,%c,%c",'A',65,'A'+1);输出结果为A,A,B。'A'+1表示A的下一个字母。

(3)%s输出一个字符串。如printf("%s","HELLO");输出结果为HELLO。

(4)%f以实数形式输出(带小数点)。如a=12.34,则printf("%f,%.3f",a,a);输出结果为12.340000,12.340。其中%.3f表示保留3位小数。

注意:

printf()函数中输出格式符与输出项的个数相同,类型一致,如下所示:

【例1.4】阅读并运行程序,分析结果理解%d格式符的使用。

第一个printf()函数按整型数据输出,符号“\n”表示换行,即下一个要输出的数据另起一行输出;第二个printf()函数按实数形式输出,前一个x采用默认格式输出6位小数,后一个x按5.2f格式输出2位小数;第三个printf()函数输出字符串,运行结果如图1-5所示。读者注意观察输出结果中的空格。

图1-5 例1.4运行结果

1.3.3 格式化输入函数scanf()

scanf()函数的功能是从键盘输入数据,一般形式为:

scanf("输入格式",输入项);

其中,输入格式中一般只使用格式符,格式符与printf()函数中格式类似。输入项用于接收数据,如scanf("%d%d",&x,&y);表示将输入的两个整型数送到变量x和y,输入的两个数据用空格分隔。

scanf()函数格式说明也以%开头,后跟格式符,常用的输入格式符如表1-2所示。

表1-2 scanf()函数常用格式符

【例1.5】阅读并运行程序,分析结果理解scanf()函数的使用。

图1-6 例1.5运行结果

运行结果如图1-6所示。

scanf()函数中输入项变量前需要加符号“&”。若scanf()函数中多个输入格式符用逗号分隔,则输入的数据也必须用逗号分隔;若输入格式符是连续的,则输入的数据用空格分隔。

若有scanf("x=%d,y=%d,z=%d",&x,&y,&z);输入语句,则输入数据的格式必须是:x=12,y=23,z=45形式。由此可见在输入格式中一般不加提示符,加了反而造成麻烦。

图1-6中f2输入的数据是34.55,而输出为34.549999是由于进制间转换的误差所造成的,有兴趣的读者可进一步研究该问题。

1.3.4 字符输出函数putchar()

putchar()函数的功能是输出一个字符数据,如putchar(c);表示输出变量c中的字符。

【例1.6】阅读并运行程序,分析结果理解putchar()函数的使用。

图1-7 例1.6运行结果

当putchar()函数中的参数为一个整数时,该函数输出该整数所对应的ASCII字符。本例中c=65,对应的ASCII字符为大写字母A,运行结果如图1-7所示。

1.3.5 字符输入函数getchar()

getchar()函数的功能是输入一个字符数据,该函数不带参数。程序中使用这个函数时,一般用一个字符变量接收输入的字符,如c=getchar();。

【例1.7】阅读并运行程序,分析结果理解getchar()函数的使用。

运行结果如图1-8所示。

图1-8 例1.7运行结果

当执行到语句“ch=getchar();”时,程序等待用户输入一个字符,按下【A】键后回车,得到以上结果。“printf("ch=%c,ch=%d\n",ch,ch);”语句中第一个变量ch以字符形式输出,第二个变量ch以带符号的十进制形式输出整数。