fgets和scanf的区别

C语言中常用的两个输入方法。平时没有特别在意,最近在项目中碰到问题,才开始思考。下面简单记录一下自己碰到的问题。

#define _CRT_SECURE_NO_DEPRECATE

#include "stdio.h"
#include "string.h"



int Main()
{
	char name[10] = { 0 };
	//scanf("%s", name);
	//输入  gu chuan hang  只能得到  gu	 
	//PS. scanf 结束符为 空格 换行符 
	//输入 guchuanhang12354 可以得到 guchuanhang1254(Abort)
	//PS. scanf 不做空间检测

	fgets(name, sizeof(name), stdin);
	//输入  gu chuan hang  得到  gu	chuan 
	//PS. scanf 结束符为 换行符 ,并且做越界检查,越界后自动截断.
	//输入 gu  得到 gu\n
	//PS. fgets 不仅仅将回车换行作为分隔符,还将其读入内容中
	printf("%s", name);

	return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值