6.C基础_输入输出函数

putchar

功能:输出一个字符

函数声明:

cpp 复制代码
int putchar(int c);

返回值:参数c的ASCLL码值

c:要输出的字符,可以为字符常量、字符变量或表达式

注意点:输出的结果不带'\n'

getchar

功能:从键盘读一字符

函数声明:

cpp 复制代码
int getchar(void);

返回值:获取数据的ASCLL码值,当输入ctrl+d时会退出获取,此时返回值为-1

返回值为int型而不是char,unsigned char型是因为要返回-1和0~255范围,int型的范围才足够。

注意点:当获取多个字符时,回车也会被getchar获取,示例代码如下:

printf

功能:按指定格式向显示器输出数据

函数声明:

cpp 复制代码
printf("格式控制串",输出表);

格式控制串:

  • 格式说明:%[修饰符]格式字符,用于指定输出格式
  • 普通字符:原样输出

格式字符汇总

整型输出有:%i、%d、%ld、%u、%lu、%o、%lo、%x、%lx

其中:l代表long或者double;l可以换成h,代表short型

字符型输出有:%c、%s

浮点型输出有:%f、%lf、%e、%le、%E、%lE、%g、%lg

其中:l代表long或者double

地址输出:%p

修饰符汇总

1、设置域宽(m):

设置输出数据的域宽,显示m个长度。

  • 如果原数据<m个长度,则会补其m个长度;
  • 如果原数据>m个长度,则会显示全部内容,不会截取。

2、限制输出位数(.n):

可以限制字符串、实数的输出位数。

  • 若原数据为字符串,则指定输出n个字符串,多余的会被截取。
  • 若原数据为实数,则指定输出小数点后n位,具有四舍五入原则。

3、设置左右对齐(-):

默认对齐方式为右对齐,加上" - "之后变成左对齐

4、显示有符号数正数符号(+)

有符号正数前会加上" + ",负数还是自动加上" - "

5、空位补0(0):

默认空位补的是空格,0会让空位补0

6、自动显示十六进制、八进制的前缀(#)

十六进制前缀是0x,八进制前缀是0

scanf

功能:按指定格式从键盘读入数据,存入地址表指定

函数声明:

cpp 复制代码
int scanf("格式控制串",&地址表);

返回值:输入的有效数据的个数

输入停止规则

对于数值型数据,空格、Tab、回车、非法字符会让输入停止。

对于字符型数据,只有非法字符会让输入停止。

非法字符就是不符合要求的字符,比如要输入%d,却输入了36.1,那么" . "就是非法字符

格式控制串汇总

格式控制串与printf完全一致。

修饰符汇总

指定获取多个位(m):

输入的数据最多获取m个,多于m个的会被放到下一个格式控制串去输入,少于m个字符无影响。

抑制符(*):

配合m可以指定跳过m个字节不赋值

注意点

1、地址表需要有&取地址符号;

2、格式控制串中如果出现普通字符,如" , " 那么在输入时也要输入" , "

当普通字符位空格时,输入空格和回车都可以被获取到

3、当先获取数值型数据,再获取字符型数据时,回车会被获取(类似getchar的问题)

下面提供了三种解决方法:

4、当前面有m修饰时,但输入数据大于m时,数据会被下一个scanf接收

scanf获取字符串注意点

使用scanf("%s",arr);获取字符串时,会出现空格不能被获取,情况如下:

解决方法:使用scanf("%[^\n]",arr);来获取以换行为结束符的字符串,效果如下:

gets(不建议使用)

功能:从键盘输入一以回车结束的字符串放入字符数组,并自动加'\0'

函数声明:

cpp 复制代码
char * gets(char *s);

s:字符串存入的地方

特点:

  • 输入的字符串中有空格也可以输入
  • 输入串长度要注意,保证数组内存空间够用

puts

功能:向显示器输出字符串,并追加换行

函数声明:

cpp 复制代码
int puts(const char *s);

s:要打印的字符串

特点:

  • s必须为字符串,即:以' \0 '结尾
  • 自动输出\n,即:puts("hello") 就是 printf("hello\n")
相关推荐
2401_857439692 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
SoraLuna2 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
xlsw_2 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
Dream_Snowar3 小时前
速通Python 第三节
开发语言·python
XH华3 小时前
初识C语言之二维数组(下)
c语言·算法
高山我梦口香糖4 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
信号处理学渣4 小时前
matlab画图,选择性显示legend标签
开发语言·matlab
红龙创客4 小时前
某狐畅游24校招-C++开发岗笔试(单选题)
开发语言·c++
jasmine s5 小时前
Pandas
开发语言·python
biomooc5 小时前
R 语言 | 绘图的文字格式(绘制上标、下标、斜体、文字标注等)
开发语言·r语言