C语言scanf中%%,C语言scanf()和gets()及printf()和puts()的区别
一、scanf()和gets()
1.scanf()
所在头文件:stdio.h
语法:scanf(“格式控制字符串”,变量地址列表);
接受字符串时:scanf(“%s”,字符数组名或指针);
2.gets()
所在头文件:stdio.h
语法:gets(字符数组名或指针);
两者在接受字符串时:
1.不同点:
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab和回车等;
scanf :当遇到回车,空格和tab键会自动在字符串后面添加’\0’,但是回车,空格和tab键仍会留在输入的缓冲区中。
gets:可接受回车键之前输入的所有字符,并用’\0’替代 ‘\n’.回车键不会留在输入缓冲区中
#include
int main()
{
char a[10];
scanf("%s",a);
printf("%s\n",a);
return 0;
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
从键盘输入字符串 asd df时,遇到空格,scanf()就认为输入结束了,所以a中存放的字符串是 ‘asd\0’。
#include
int main()
{
char a[10];
gets(a);
printf("%s\n",a);
return 0;
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
从键盘输入字符串 asd df时,gets()遇到’\n’才认为是结束输入了,所以a中存放的是’asd df\0’。
#include
int main()
{
char a[10],b[10];
char c,d;
scanf("%s",a);
printf("a中保存的字符串为:%s\n",a);
c=getchar();
printf("c中保存的字符为:%c ",c);
gets(b);
printf("b中保存的字符串为:%s\n",b);
d=getchar();
printf("d中保存的字符为:%c",d);
return 0;
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
输入asdf回车,因为scanf会将回车保留在缓冲区中,所以回车会紧接着被c取得而不需要再额外输入,所以a中存储的是’asdf\0’,字符c=’\n’。结果如下:
接着输入as df回车,因为gets会将’\n’替换成’\0’,所以b字符串中保留的是’as df\0’,并且还是要继续输入d的值:
最后输入d的值:
二、printf()和puts()的区别
相同点:
两者都属于stdio.h这个头文件
都能输出字符串
不同点:
puts()在输出字符串时会将’\0’自动转换成’\n’进行输出,也就是说,puts方法输出完字符串后会自动换行。
这一组比较简单,就不再举例子了。
C语言scanf中%%,C语言scanf()和gets()及printf()和puts()的区别相关推荐
- vscode怎么运行verilog语言_VScode中不同语言使用不同字体,如C/C++,VHDL
VScode中不同语言使用不同字体. 问题背景:C/C++语言可以使用连体Fira code, 而VHDL语言<=作为赋值语句显然不能连体显示为小于等于 想达到的效果: VHDL <=原 ...
- f2812的c语言与标准c语言,F2812中C语言调用汇编函数
F2812中C语言调用汇编函数 参考资料: (1) SPRU514 ---- TMS320F28x Optimizing C/C++ Compiler User's Guide.pdf; (2) sp ...
- 延时作用是什么意思c语言,单片机中C语言延时函数
原标题:单片机中C语言延时函数 延时程序计算2009-11-02 22:15单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有 ...
- c语言程序中u8是什么意思,c – __u8和uint8_t之间的区别
有人可以解释uint8_t和__u8类型之间的区别吗? 我知道uint8_t是在stdint.h中定义的,并且它们在每个unix系统上都可用. /* Unsigned. */ typedef unsi ...
- 【c语言】printf和scanf中* # %g的作用
写这一片博客是因为在写题的时候遇到了一些相关的麻烦 一.printf和scanf中* 的作用 scanf *在scanf中起到过滤的作用,就比如写入了三个数,而就只想要中间的数,那我们就可以应用 * ...
- 课程教学c语言遇到的问题,C语言教学中的几点思考
C语言教学中的几点思考 马稳 (西安科技大学计算机学院,陕西.西安,710054) 摘要: 本文针对作者在<C语言程序设计>教学常遇到的一些问题作了思考,从教学中使用的教学手段.教学方法和 ...
- 检查各计算机所属工作组ip,如何在Win8.1/RT 8.1中添加语言或键盘
通过添加语言,你可以更改用于在 Windows.应用和 Web 中读取和写入的语言. 添加语言 若要更改你的 Windows 显示语言或者添加键盘以进行键入,首先要将一种语言添加到语言列表中. 从屏幕 ...
- ~scanf中~的意思
~scanf中~的意思 scanf返回值的取值范围是大于等于-1的整数.只有返回值为EOF时,其取反的的值,即while循环的判断条件才为0 才能结束循环(-1的补码表示全是1,按位取反后全是0,即为 ...
- C语言scanf fgets,C语言中输入函数(scanf()、fgets()和gets())的区别详解
前言 大家都知道在C语言中,有三种主要的输入函数:scanf(),fgets()以及gets().他们的使用方法及注意事项如下: 1.scanf() 它是一种格式化的输入方式,可一次性按照规定的格式输 ...
- scanf在c语言中的作用是什么?
scanf()函数 scanf()是C语言中的一个输入函数.与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include .(在有一些实现中,printf ...
最新文章
- 在 Google Go Team 工作是一种怎样的体验?
- 二叉树节点间的最大距离
- canvas学习绘制扇形
- 结对-贪吃蛇游戏-设计文档
- Dapr牵手.NET学习笔记:开篇
- 淘宝网的技术发展史(一)——个人网站时代
- winfrom实现简单计算器V2版本
- 利用RecyclerView实现无限轮播广告条
- 97.用好浏览器的缓存
- JAVA项目面试总结 电商系统 OA办公系统 P2P网贷
- 关于Toast的一些常见操作
- XP Embedded 蓝屏错误 Stop 0x0000007B
- 父子组件传值之(子传父)
- matlab GUI 绘图 坐标轴控件
- 2017年技术教练认证流程回顾
- arguments的用法(介绍)
- TypeScript14 - 泛型
- php urlencode()函数详解
- 密码管理软件:Keepass2Android-1.09a-r3
- local_umask=022是什么意思?