头文件 <stdio.h>
字符输出函数
格式:putchar( c )
参数:c为字符常量、变量或表达式
格式输出函数
格式:printf(“格式控制字符串”,输出参数)
格式控制字符串:%[修饰符]格式字符,用于指定输出格式
普通字符:原样输出
格式字符
格式符 | 说明 | 例子 |
---|---|---|
i,d | 十进制整数 | printf(“%d\n”, 123); //123 |
x,X | 十六进制无符号整数 | printf(“%x\n”, 123); //7b |
o | 八进制无符号整数 | printf(“%o\n”, 123); //173 |
u | 无符号十进制整数 | printf(“%u\n”, 123); //123 |
c | 单一字符 | printf(“%c\n”, 123); //{ |
s | 字符串 | printf(“%s\n”, “abc”); //abc |
e,E | 指数形式浮点小数 | printf(“%e\n”, 123.456); //1.234560e+002 |
f | 小数形式浮点小数 | printf(“%f\n”, 123.456); //123.456000 |
g | e和f中较短一种 | printf(“%g\n”, 123.456); //123.456 |
%% | 百分号本身 | printf(“%%\n”); //% |
m | 输出数据域宽,数据长度<m,左补空格;否则按实际输出 | printf(“%8d,%2d\r\n”,1234,1234); // 1234,1234 |
.n | 对实数,指定小数点后位数(四舍五入);对字符串,指定实际输出位数 | printf(“%f,%8f,%8.1f,%.2f\r\n”,123.456,123.456,123.456,123.456); //123.456000,123.456000, 123.5,123.46 |
- | 输出数据在域内左对齐(缺省右对齐) | |
0 | 输出数值时指定左面不使用的空位置自动填0 | printf(“%05d\r\n”,123); //00123 |
# | 在八进制和十六进制数前显示前导0,0x | printf(“%#o\r\n”,123); //0173 |
字符输入函数
函数:getchar(),从键盘中读取一个字符,正常,返回读取的代码值;出错或结束键盘输入,返回-1 (ctrl d)。
函数:scanf(“格式控制串”,地址表),按指定格式从键盘读入数据,存入地址表指定,反值:返回输入数据的个数。
scanf支持的格式字符:
格式符号 | 作用 |
---|---|
i, d | 十进制整数 |
x, X | 十六进制无符号整数 |
o | 八进制无符号整数 |
u | 无符号十进制整数 |
c | 单一字符 |
s | 字符串 |
e | 指数形式浮点小数 |
f | 小数形式浮点小数 |
修饰符 | 功能 |
---|---|
h | 用于d, o, x前,指定输入为short型整数 |
l | 用于d, o, x前,指定输入为long型整数 ;用于e, f前,指定输入为double型实数 |
m | 指定输入数据宽度,遇空格或不可转换字符结束 |
* | 抑制符,指定输入项读入后不赋给变量 |
输入函数留下的"垃圾”
方法1:用getchar()清除
int x;
char ch;
scanf("%d",&x);
getchar();
ch=getchar();
printf("x=%d, ch=%d\n", x, ch);
方法2:用格式串中空格或"%*c"来"吃掉"
int x;
char ch;
scanf("%d",&x);
scanf(" %c",&ch);//或
scanf("%*c%c",&ch);
字符串输入函数
格式: char * gets(char *s)
功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 20
int strlen(const char* arr);
int main()
{
char arr[N];
while (gets(arr) != EOF)
{
int length = strlen(arr);
printf("length = %d\n", length);
}
return 0;
}
int strlen(const char* arr)
{
const char* s;
for (s = arr; *s != '\0'; ++s)
;
return s - arr;
}
字符串输出函数
字符串输出函数puts
格式:int puts(const char *s)
功能:向显示器输出字符串(输出完,换行)
说明:字符数组必须以‘\0’结束