c的详细学习(3)数据的输入输出
c语言没有专门的数据输入输出语句,而是通过调用系统提供的的标准输入/输出库函数来实现数据的输入和输出。
(1)数据的输出:
注意:在使用标准的输入输出库函数时,使用编译预处理命令“#include<stdio.h>”将stdio.h头文件写在程序的开头,该文件包含了与输入输出有关的变量定义,宏定义和函数声明。
1.格式输出函数printf
printf(格式控制字符串,输出表列)
printf需要提供两类参数,一类是格式控制字符串,另一类是输出表列。
整型和字符型格式说明符可以互换,%f格式说明符可以用来输出单精度实数和双精度实数。
在c语言中,格式输入和输出函数对不同类型的数据的宽度必须采用不同的类型说明符。
一般形式:
%[-或0][m][.][n][l]格式符
负号表示当实际数据的宽度小于显示宽度时,数据左对齐,数据右方用空格填充。0表示当实际数据的宽度小于显示宽度时,数据右对齐,数据左边空格用0填充。
m表示占用数据的宽度,如果实际数据的宽度大于m,按实际宽度输出。如果实际数据的宽度小于m,数据右对齐,数据左方用空格填充。
n表示指定输出的数据中有n位小数,或者表示取字符串中左端n个字符输出。如果不指定该项,则系统默认输出6位小数。
l用于输出长整型或单精度型的数据。
用%%表示字符%。
示例:
1 #include<stdio.h> 2 3 int main(){ 4 printf("1.用\'%%d\'或者\'%%i\'来输出数据12\n"); 5 printf(" %d,%i\n\n",12,12); 6 printf("2.用\'%%o\'以八进制输出整数8,16和以\'%%d\',\'%%o\',\'%%x\'分别以十、八、十六进制输出-1\n"); 7 printf(" %o,%o,%d,%o,%x\n\n",8,16,-1,-1,-1); 8 printf("3.以\'%%u\'输出无符号数1000,和-1\n"); 9 printf(" %u,%u\n\n",1000,-1); 10 printf("4.以\'%%s\'输出字符串\n"); 11 printf(" %s\n\n","我是MenAngel"); 12 printf("5.用putchar输出字符和转义字符\n"); 13 printf(" "); 14 putwchar('A'); 15 putchar(66); 16 putchar('\103'); 17 putchar('\103'+1); 18 putchar('\n'); 19 putchar('\n'); 20 return 0; 21 }
程序运行结果:

(2)数据的输入:
一般形式:scanf(格式控制字符串,地址表列);
格式控制字符串无任何普通字符。在程序运行中需要输入非字符类数据时,三个数据之间以一个或者几个空格间隔,也可以按回车、制表键间隔。
1 #include<stdio.h> 2 3 int main(){ 4 int a; 5 char b; 6 printf("1.用\'%%d\'输入整数,\'%%c\'输入一个字符:\n"); 7 printf("第一次输入:"); 8 scanf("%d%c",&a,&b); 9 printf("a=%d,b=%c\n",a,b); 10 printf("第二次输入:"); 11 scanf("%d%c",&a,&b); 12 printf("a=%d,b=%c",a,b); 13 printf("得出结论,空格"); 14 return 0; 15 }

代码中要求先让输入一个数字后输入一个字符,程序输入为“12”,“ ”,“34”,“a”,可见在c语言中把空格也会当成字符进行输入。另外回车也会被当成字符进行输入。回车代表“\r\n”。不必要的空格和字符输入问题可以用getchar()解决:
1 #include<stdio.h> 2 3 int main(){ 4 int a; 5 char b; 6 printf("1.用\'%%d\'输入整数,\'%%c\'输入一个字符:\n"); 7 printf("第一次输入:"); 8 scanf("%d",&a); 9 getchar();//用来接收回车 10 scanf("%c",&b); 11 getchar();//用来接收回车 12 printf("a=%d,b=%c\n",a,b); 13 14 printf("第二次输入:"); 15 scanf("%d",&a); 16 getchar();//用来接收回车 17 scanf("%c",&b); 18 printf("a=%d,b=%c\n",a,b); 19 getchar();//用来接收回车 20 printf("另外getchar()还可以使程序进行暂停:\n"); 21 printf("程序暂停中,按回车键继续......"); 22 getchar(); 23 printf("程序继续运行!"); 24 return 0; 25 }

简单的应用举例:
1 #include<stdio.h> 2 #include<math.h> 3 4 int main(){ 5 printf("执行开平方操作:\n"); 6 double result; 7 int n; 8 printf("输入一个被开放的数:\n"); 9 scanf("%d",&n); 10 result=sqrt(n); 11 printf("以5位有效数字,2位小数的形式输出开方结果:\n%5.2f\n",result); 12 return 0; 13 }
外加库函数math.h的用法结果:

浙公网安备 33010602011771号