自学内容网 自学内容网

学习日记:输入输出

目录

1.概念

2. C语言函数库提供的输入输出函数

2.1 getchar

2.2 putchar

2.3 printf

附:占位符

2.4 scanf

3.   附加

1.概念

输入是从键盘、鼠标等设备向计算机(内存)

注:c语言本身不提供输入输出功能,使用的是c语言中的“标准输入输出”函数。

2. C语言函数库提供的输入输出函数

使用时需要加上头文件 --- <stdio.h>

getchar/putchar                 操作一个字符

gets/puts                            操作一个字符串

scanf/printf                         格式化的函数

2.1 getchar

功能:从键盘获取一个字符

参数:void --- 表示为空(使用时不需要给实参)

返回值:表示获取到的字符的ASCII码值

eg:

int ret;
ret = getchar();     // 表示获取到getchar读取的字符的ASCII码值

2.2 putchar

功能:输出一个字符

参数:表示要输出的字符

返回值:成功 --- 输出了的字符的ascii码值

               失败 --- 输出 -1

eg:

char ch = 'b';
putchar(ch);     // 结果为b

2.3 printf

一般格式:printf(“格式控制字符串”,输出参数列表);

printf("a = %d\n",a);

(1)格式控制字符串

        a.普通字符 --- 原样输出

        b.占位符    --- 匹配后面的输出参数(%d 、%c、%u等)

附:占位符

注:一个占位符只能匹配一个输出参数

整型

%d                --- 转换为有符号十进制形式

%u                --- 转换为无符号十进制形式

%o                --- 转换为八进制形式

%x                --- 转换为十六进制形式

%X                --- 转换为十六进制形式,字母以大写形式输出

浮点型

%f                --- 转换为十进制形式的小数,输出是默认保留6位小数,不足6位补0

%e                --- 转换为科学计数法形式

%g                --- 以一种更简洁的方式输出,不会输出无意义的0

字符型

%c                --- 转换为字符形式输出

%s                --- 转换为字符串形式输出

注:% [辅助控制符] d

辅助控制符:

#                --- %#x 打印出十六进制数的前缀0x

                  --- %#o 打印出八进制数的前缀 0

m               --- 表示要输出数据的宽度

注:

如果数据本身宽度 > m  此时按照实际输出的宽度

如果数据本身宽度 < m  此时按照m的宽度输出,空的地方补空格   ---   默认右对齐(加上符负号左对齐,加上0 --- 0m 多出来的位置填充0)

.n               --- n为数字 (.2f  表示保留两位小数)

                  --- %.ns 表示保留前n个字符

eg:

#include<stdio.h>

int main(void)
{
    int a = 1234;
    float b = 12.3456;

    printf("%d\n",a);
    printf("%8d\n",a);
    printf("%2d\n",a);
    printf("%#o\n",a);
    printf("%08d\n",a);
    printf("%.2f\n",b);

    
    return 0;
}

运行结果:

2.4 scanf

从键盘输入数据

一般格式:scanf("格式控制字符串",地址列表);

int a;
scanf("a = %d",&a);

(1)格式控制字符串(与printf中一样)

        a.普通字符                --- 原样输入

        b.占位符(与printf一致)  --- 将输入数据转为指定的格式(%lf 和 %f 匹配的时候要做到精确,lf 匹配double类型 , f 匹配float类型)

注:(1)scanf 格式控制中,一般不写普通字符;

        (2)结束条件(遇到非法字符、、超过指定宽度、空白符)--- 空白符:空格、回车、tab

scanf("%3d",&a);

        (3)在输入字符型数据时要注意空白符也是字符型数据。

        (4)%* 可以跳过一个

eg:

#include<stdio.h>

int main(void)
{
    int a;
    scanf("%*d%d",&a);
    printf("%d\n",a);
}

运行结果:

        (5)输入的返回值是输入数据的个数

ret = scanf("%f%f%f",&a,&b,&c)     // 返回的是输入数据的个数

3.   附加

(1)求根号:用 sqrt(数据)

前面需要加上头文件 #include<math.h> 在编译时需要链接,在后面加上lm,l --- 表示连接,m -- 表示math函数库。     

#include<math.h>
sqrt(2)   // 对2求根号,得到根号2的值

(2)清除缓冲区

可以把缓冲区所有垃圾数据全部清除。

                                     


原文地址:https://blog.csdn.net/qq_70030717/article/details/140707934

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!