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")
相关推荐
ever_up97335 分钟前
EasyExcel的导入与导出及在实际项目生产场景的一下应用例子
java·开发语言·数据库
吴天德少侠1 小时前
c++返回一个pair类型
开发语言·c++
ok!ko2 小时前
设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)
java·开发语言·设计模式
学地理的小胖砸2 小时前
【GEE的Python API】
大数据·开发语言·前端·python·遥感·地图学·地理信息科学
八月的雨季 最後的冰吻2 小时前
C--字符串函数处理总结
c语言·前端·算法
qq_317060953 小时前
java之http client工具类
java·开发语言·http
robot_大菜鸟3 小时前
python_openCV_计算图片中的区域的黑色比例
开发语言·python·opencv
Pandaconda4 小时前
【C++ 面试 - 新特性】每日 3 题(六)
开发语言·c++·经验分享·笔记·后端·面试·职场和发展
chanTwo_004 小时前
go--知识点
开发语言·后端·golang
悟空丶1234 小时前
go基础知识归纳总结
开发语言·后端·golang