gets(),fgets()的作用机制探究
gets(),fgets()
scanf("%d",&a)若接受形如
2
这样的输入后,缓冲区内会留一个\n,此后若调用gets等函数时会读出这个换行出现错误,需注意
fgets(),gets()读到\n处会停止,从而缓冲区内会留下一个\n,从而使以后的输入出现错误,需要用getchar()等方式处理掉
对各种方式的gets(),fgets()的测试:
测试例程:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<queue> using namespace std; #define N 51
#define A 105 char maze[N][N];
int g[A][A];
int x,y; int main()
{
int count;
scanf("%d",&count);
while (count--)
{
memset(maze,-,sizeof(maze));
scanf("%d%d\n",&x,&y);
for (int i=;i<y;i++)
{
fgets(maze[i],x+,stdin);
// getchar();
} }
return ;
}
测试数据:
2
6 5
### (每行6个字符,包括空格,不包括换行符)
#A#A##
# # A#
#S ##
#####
每行后均有换行符
测试:

maze全初始化为-1
由测试结果可知:gets():当读到换行符时停止,换行符一起读出缓冲区并写入字符串末尾
fgets(char*,int num,FILE*):最多读入num-1个字符,并将第num位置为\0(若读入字符小于num-1个,则读入\n或EOF后将其之后一位置为\0,结束)(若读到换行符,换行符也写入文件末尾)
gets(),fgets()的作用机制探究的更多相关文章
- J2EE进阶(八)Hibernate与延迟加载机制探究
Hibernate与延迟加载机制探究 前言 Hibernate对象关系映射提供延迟的与非延迟的对象初始化.非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来.这有时会导致成百的 ...
- Glibc堆块的向前向后合并与unlink原理机制探究
i春秋作家:Bug制造机 原文来自:Glibc堆块的向前向后合并与unlink原理机制探究 玩pwn有一段时间了,最近有点生疏了,调起来都不顺手了,所以读读malloc源码回炉一点一点总结反思下. U ...
- Elasticsearch分布式机制探究
Elasticsearch是一套分布式的系统,分布式是为了应对大数据量隐藏了复杂的分布式机制 分片机制 shard = hash(routing) % number_of_primary_shards ...
- iOS 视图,动画渲染机制探究
腾讯Bugly特约作者:陈向文 终端的开发,首当其冲的就是视图.动画的渲染,切换等等.用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅.UI就是 App 的门面,它的体验 ...
- java 反射机制探究
一 反射机制操作类的成员变量 二 操作类的方法 三 利用反射实例化类 四 利用反射访问一个类的私有成员 五 利用反射覆盖数据对象的toString 方法
- Oracle 锁机制探究
以前虽然在网上看到很多关于Oracle锁机制的描述,但总感觉哪里有缺陷不适合自己,因此花了点时间参考官网以及Tom Tyke的<Oracle 9i/10g/11g编程艺术>一书整理了一下O ...
- php中session的生成机制、回收机制和存储机制探究
1.php中session的生成机制 我们先来分析一下PHP中是怎么生成一个session的.设计出session的目的是保持每一个用户的各种状态来弥补HTTP协议的不足(无状态).我们现在有一个疑问 ...
- B/S系统的前台和后台数据转递机制探究
作者:朱金灿 来源:http://blog.csdn.net/clever101 说实话写这篇文章超出了我的能力范围之外(因为我并没有多少Web开发经验),我所期待的是能起一个抛砖引玉的作用--希望高 ...
- 玩转CONSUL(1)–WATCH机制探究
1. 前言 consul 经常被用于服务的注册和发现,本文将带你对watch做更深入的探究 2. consul对外暴露了4种通讯接口 2.1 RPC 主要用于内部通讯Gossip/日志分发/选主等 2 ...
随机推荐
- CodeForces#275--DIV 2--A
A. Counterexample time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- CF#335 Intergalaxy Trips
Intergalaxy Trips time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 【原】iOS学习之ARC和非ARC文件混编
在编程过程中,我们会用到很多各种各样的他人封装的第三方代码,但是有很多第三方都是在非ARC情况下运行的,当你使用第三方编译时出现和下图类似的错误,就说明该第三方是非ARC的,需要进行一些配置.
- ccc 函数中写函数
attackOnTarget: function (atkDir, targetPos) { var self = this; let deg = cc.radiansToDegrees(cc.pAn ...
- BZOJ3189 : [Coci2011]Slika
通过离线将操作建树,即可得到最终存在的操作. 然后逆着操作的顺序,倒着进行染色,对于每行维护一个并查集即可. 时间复杂度$O(n(n+m))$. #include<cstdio> cons ...
- [R语言]foreach和doParallel包实现多个数据库同时查询
R语言在进行数据库查询时,每执行一条语句,都会阻塞.直到查询语句返回结果之后,才会进行下一条语句. 为了能够实现同时对多个数据库进行查询,以节省顺序执行下来的时间,首先考虑通过多线程来进行数据库查询. ...
- CentOS6.4 安装MongoDB
1.下载MongoDB(64位) http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz 或 http://pan.baidu.c ...
- Codeforces Round #210 (Div. 2) A. Levko and Table
让对角线的元素为k就行 #include <iostream> using namespace std; int main() { int n,k; cin >> n > ...
- java中的List记录是否完全匹配方法
今天要说的是给List分组,然后用Map来封装,可能你看了以后还是有一些模糊. 先看一下项目结构图: User类是一个VO类,主要逻辑还是在MapTestBak上面. 运行效果: 原理图: 1.在st ...
- Oracle函数解析
一:大小写控制函数 lower()函数:(此函数将全部的大写字母都可以变为小写字母) upper()函数:(将输入的字符串变为大写字母) initcap()函数:(将每个字符串的首字母大写) 二:字 ...