【1】putchar
格式: putchar( c )
参数: c常量、变量或表达式
功能:把字符c输出到标准输出上
返值:正常,为显示的代码值;
【2】getchar
格式:getchar( void )
功能:从标准输入上读一字符
返值:正常,返回读取的代码值;出错,返回EOF(-1)
1--- 从终端获取一个字符
2--- 吃掉一个垃圾字符
声明:什么时候用来吃掉回车那?
一般是在这个时候前面是什么无所谓,关键是你在下一个scanf前面按了回车键而你的这个scanf又是接收字符串的。那就废了。原因分析如下,当你按下回车键的时候后面又是接收字符串的scanf或者是
getchar他们由于要读取缓冲区里面的内容就会把这个回车都取到,而回车有恰恰是结束都取,所以就会直接结束!而如果你的后面的scanf不是读取字符比如你读取的是%d,那就不存在问题。
为什么不存在问题?那是因为整形输入会忽略之前的空格、回车,并且以之后的空格、回车作为输入整形结束的标志。
1.如果是这种情况就不需要。
int a;
int b;
scanf("%d", &a);
scanf("%d", &c);
2.如果是下面的这种情况,就需要getchar()了
int a;
char c;
scanf("%d", &a);
scanf(%c", &c);
而输入是:1001 敲回车 @ 敲回车
先输入整形,然后输入字符,如果在第一个scanf之后,没有getchar的话,那么c接收的到是回车字符,而不是字符‘@‘
scanf("%d", &a);
getchar();
scanf(%c", &c)
【3】printf
格式:printf(“格式控制串”,输出表)
功能:按指定格式向显示器输出数据
返值:正常,返回输出字节数;出错,返回EOF(-1)
1--- 数据类型的控制
%d %o %x %u
%f
%c
%p 打印数据在内存中的地址(使用取地址符:&)
3---字符串
%s 要求传递一个地址量(字符串常量当作地址量处理)
遇到‘\0‘结束输出;
.n 对字符串,指定实际输出位数
2--- 格式控制
m 输出数据域宽,数据长度<m,左补空格
.n 对实数,指定小数点后位数(四舍五入)
- 输出数据在域内左对齐(缺省右对齐)
+ 指定在有符号数的正数前显示正号(+)
0 输出数值时指定左面不使用的空位置自动填0
# 在八进制和十六进制数前显示前导0,0x
【4】scanf
1--- 数据类型的控制
%d %o %x %u
%f
%c
%p //打印数据存储的地址
2--- 格式间隔符为:空格、换行符、无间隔可通用
3--- 字符串
char a[10] = {‘a‘,‘b‘,‘c‘,‘d‘,‘\0‘};
scanf("%s",a);
printf("%s\n",a);
//数组名是数组的首元素的地址
//%[^\n]
【5】puts
int puts(char * s);
1--- char * //要求你传递一个地址量,char型数据的地址量
2--- 默认带换行 ,遇‘\0’字符结束输出;
4--- 返回值:返回输出字节数
1--- 数据类型的控制
%d %o %x %u
%f
%c
%p //打印数据存储的地址
2--- 格式间隔符为:空格、换行符、无间隔可通用
3--- 字符串
char a[10] = {‘a‘,‘b‘,‘c‘,‘d‘,‘\0‘};
scanf("%s",a);
printf("%s\n",a);
//数组名是数组的首元素的地址
//%[^\n]
【5】puts
int puts(char * s);
1--- char * //要求你传递一个地址量,char型数据的地址量
2--- 默认带换行 ,遇‘\0’字符结束输出;
4--- 返回值:返回输出字节数
格式: scanf(“格式控制串”,地址表)
功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束
返值:正常,返回从标准输入成功获取数据的个数
【6】gets
char * gets(char *)
1--- 功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动在末尾加‘\0’
2--- 遇‘\n‘代表结束输入
3--- 返回值:存放字符串的首地址
【7】sqrt
函数:sqrt() 开方数学函数
头文件:#include <math.h>
链接库操作:gcc 1.c -lm
【8】if
if (表达式)
{语句块1}
else
{语句块2}
时间: 2024-10-25 01:51:50