ref

1. scanf和gets区别 | 博客园

2. printf和puts区别 | CSDN

scanf和gets都能从输入流stdin读取字符串,那么它们有什么区别呢?

scanf 留回车:开头忽略所有空格,以空格、制表符Tab(\r)、换行符(\n)等结束,结尾自动加上'\0',并且这些字符会留在缓冲区中;

gets 吃回车:开头接受任何字符,以换行符结束,并且会用'\0' 替换换行符作为字符串结尾。

相同点:字符串结尾自动加'\0'

scanf和gets搭配混用时,需要注意是否接收空格、Tab、换行等特殊字符。

比如,为避免在scanf之后,出现输入的换行被scanf忽略,但是会被gets接收的问题,可以在gets前添加一个getchar,用于专门接收缓冲区的换行字符

int main()
{
int n;
char b[]; scanf("%d", &n); // 输入n getchar(); //scanf 之后, gets之前需要添加一个getchar , 否则下一个gets会将输入的回车作为b的新输入
gets(b);
}

printf和puts都可以输出字符串到stdout,那么它们有什么区别?

puts会自动将字符串末尾的\0转换为\n输出,而printf则不会。

C/C++ scanf和gets 区别 , printf和puts区别的更多相关文章

  1. scanf gets fgets区别与联系 puts fputs printf区别与联系

    组一:scanf( )函数 gets( )函数    fgets()函数都可用于输入字符串, 组二:printf( )函数 puts( )函数 fputs()函数则用于字符串的输出. 两组内部函数各有 ...

  2. C语言scanf与get char,gets的区别

    C语言scanf与get char,gets的区别 1.scanf() scanf是C语言的格式输入函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息.可以读入任何固有类型的数据并 ...

  3. C语言初步学习I/O函数scanf、getchar、printf和putchar

    scanf().printf().getchar()和putchar()这四个函数能够让用户和程序交流,所以被称为输入/输出函数,或简称为I/O函数. 这里先结合缓冲输入来讲讲scanf()和getc ...

  4. jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别

    jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别. 1 destroy属性是,销毁实例 ...

  5. HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别(转)

    HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别 文章来源:http://www.cnblogs.com/beatIteWeNerverGiveU ...

  6. 讲说问题:|和||的区别以及&和&&的区别。2、Java中的数据类型分几类?基本数据类型有哪些?

    |和||的区别以及&和&&的区别. |或 为或运算 判断为逻辑或 || 为短路或 只有逻辑判断 当左侧为真不再继续判断 &与 为与运算 判断为逻辑与 && ...

  7. php中sprintf与printf函数用法区别

    下面是一个示例:四舍五入保留小数点后两位  代码如下 复制代码 <?php$num1 = 21;echo sprintf("%0.2f",$num1)."<b ...

  8. c语言中scanf()、printf()函数

    函数调用scanf(“%d”,  &weight) 包含两个参数:“%d” 和&weight.C用逗号来隔开函数调用中的多个参数: 但是printf()和scanf()函数比较特殊,其 ...

  9. print、println与printf之间的区别

    //print没有换行的而println有自动换行功能.实例:uprint.java class uprint{public static void main(String arg[]){int i, ...

随机推荐

  1. 在远程连接mysql数据库出现问题怎么办

    远程连接mysql数据库报“Communications link failure...”错误 今天在用myEclipse连接时提示:Communications link failure,Last ...

  2. 微信个人支付接口---YunGouOS 1.1.3 版本发布,新增个人微信/支付宝收款接口

    软件接口  https://www.oschina.net/news/113305/yungouos-1-1-3-released 文档说明  https://www.oschina.net/p/Yu ...

  3. 题解【洛谷P3385】【模板】负环

    题目描述 暴力枚举/\(SPFA\)/\(Bellman-ford\)/奇怪的贪心/超神搜索 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入输出格式 输入格式 第一行一个正整 ...

  4. 【Python】爬虫原理

    前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...

  5. 了解Maven的基本知识

    我的博客地址:https://www.cnblogs.com/themysteryofhackers/p/11934540.html 更新时间:2019-11-26 一.Maven的基本概念 Mave ...

  6. 刷题11. Container With Most Water

    一.题目说明 11.Container With Most Water,这个题目难度是Medium. 二.我的做法 乍一看,简单啊,两个for循环就可以了,我在本地写的. #include<io ...

  7. tomcat服务器启动执行的两个方法

    第一 SetApplicationContext(需要继承ApplicationContextAware)重写 第二 ContextInitialize(需要继承servleContet)重写,(co ...

  8. 2000G电脑大型单机游戏合集

    激活码 游戏名称(ctrl+F查找) 下载链接005875 艾迪芬奇的记忆 游戏下载链接http://pan.baidu.com/s/1t2PYRAj546_1AcOB-khJZg554158 暗影: ...

  9. 《TCP/IP网络编程》读书笔记

    1.Windows 下的 socket 程序和 Linux 思路相同,但细节有所差别(1) Windows 下的 socket 程序依赖 Winsock.dll 或 ws2_32.dll,必须提前加载 ...

  10. 基于MHA的MYSQL高可用方案

    一.MHA 简介 MHA (Master High Availability )目前在 MySQL 高可用方面是一个相对成熟的解决方案,它由日本 DeNA 公司的 youshimaton 员工(现就职 ...