黑马程序员——c语言学习---printf和scanf函数

时间:2022-04-11 00:26:10

-----------Java培训Android培训IOS培训.Net培训期待与您交流!------------  printf和scanf函数为重要的文字交互函数,printf用于输出字符串,scanf用于扫描用户输入,是终端界面最常用的两个函数。 这两个函数都包含在stdio.h标准输入输出头文件中,在使用中需要包含。 在学习这两个函数前,我们先要了解一下字符串。 1、字符串的认识 在c语言中没有字符串的概念,我们所接触到的基本数据类型中只有int、char、Bool、float、double等类型,而字符串是由一系列的字符所组成,为了表示字符串,需要用到字符数组,在一个字符数组中,前面的元素为char类型(各占8个bit),最后一位存储一个结束标志\0,这样以来,程序就可以通过这个字符数组的首地址(数组名标识符)和结束标志(\0)从内存中读取该字符串。 2、占位符的认识 占位符是一种特殊的运算,用于将一些其他数据类型的数据转换为特殊的字符格式,嵌入到某个字符串中。有如下几种:
占位符 作用
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X  读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号

3、printf函数 该函数接受一个字符串作为参数,其作用是将传入的字符串打印在终端窗口上。 字符串可以包含占位符。 举例如下:
#include <stdio.h>

//程序入口(主函数)
int main()
{
int count=100;
char grade='B';
float height=1.78f;
double pi=3.141592654;

//输出整数,%d也可
printf("数量为 %i \n",count);

//输出字符
printf("等级为 %c \n",grade);

//输出两位小数,默认6位
printf("身高为 %.2f 米\n",height);

//输出多位小数,.10表示总共10位数
printf("圆周率 %.10g \n",pi);

return 0;
}
在该例子中,定义了int、char、float、double等数据类型,他们可以通过占位符嵌入到字符串中,字符串中的\n为制表位,用于换行输出。 输出结果如下:
数量为 100 
等级为 B
身高为 1.78 米
圆周率 3.141592654
4、scanf函数
scanf函数用于获取用户输入数据,并存储到内存变量中。该函数需要接受两种参数,一种是占位字串,用于表示输入数据格式,一种是内存单元的地址,用于存储输入的数据。 为此我们需要定义相应的变量用于储存用户输入
int a;
int b;
然后调用函数scanf,并设置合适的输入格式:
scanf("%d;%d",&a,&b);
该代码中两个占位符之间用“;”隔开,表示接收的数据之间要用“;”隔开,缺省的话,可以用空格表示,后面的参数前面加&表示变量地址。
通过以上步骤即可将用户输入的数据保存到内存单元中。
5、其他 1、scanf要求用户输入数据,不会有任何提示,为了交互性的考虑,需要用printf函数进行必要的提示; 2、用户输入的数据不一定复合格式,要设置必要的检查环节,确保用户输入正确的数据; 3、printf多用于程序的调试,要合理运用。



-----------Java培训Android培训IOS培训.Net培训期待与您交流!------------