我是靠谱客的博主 勤劳草莓,最近开发中收集的这篇文章主要介绍【C库函数】fgets详解fgets,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

fgets

​函数基本原型 

参数讲解 

返回值

函数详解 


fgets

        是一个可以从标准流中获取字符串的函数

函数基本原型 

char *fgets( char *string, int n, FILE *stream );

参数讲解 

参数stringnstream
解释存储字符串的位置存储字符串的最大个数(n-1)  指向读取的流

 stream在使用中一般会写为stdin,意为标准输入流(standard input )

返回值

成功返回字符串,错误或文件结束条件返回NULL。 

使用 feof 或 ferror 来确定是否发生错误。 

函数详解 

         fgets()函数并不是一直在标准输入流中一直读取字符的,当遇到‘’或是读取字符等于n-1,就会停止。

        那什么fgets()函数在标准输入流中最多读取n-1个字符,而为什么不是n个字符呢?

        我的理解是每次fgets读取字符时都会在最后添加一个空字符(‘’)以构成一个字符串。

我们看下面的代码

#include<stdio.h>
int main()
{
	char str[10];//定义一个字符型数组
	fgets(str, 5, stdin);//从stdin中最多读取(5-1)个字符并返回给str
	return 0;
}

当我输入7个字符‘abcdefg’时,str数组中存放则是 5个字符,分别为‘a’ ‘b’ ‘c’ ‘d’ ‘’。  

 当我们输入小于n-1个字符时也就是说fgets()在达到字符最大数目之前读完一行,这是它会把‘n’也当做字符串一部分存起来,并在最后添加一个‘’。这也是fgets()函数与gets()函数最根本的区别

废话不多说,直接上代码演示

#include<stdio.h>
int main()
{
	char str[10];
	fgets(str, 5, stdin);
	return 0;
}

当我输入两个字符‘a’ ‘s’时,str中就会出现‘n’的身影 

 

 这一点也是我们需要注意的

这里我放一道题的链接,希望大家可以尝试去使用fgets()函数

题目入口: 计算某字符出现次数

最后

以上就是勤劳草莓为你收集整理的【C库函数】fgets详解fgets的全部内容,希望文章能够帮你解决【C库函数】fgets详解fgets所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部