用法一,用文件获取内容:

fgets是与gets类似,是接收字符串的意思,不同的是,fgets是从文件或者屏幕

终端获取内容,其原型如下:

1
char *fgets(char *str, int num, FILE *stream)

三个参数意思分别为:获取字符内容存储的地址,获取字符的数量,要获取的文件指针或来源数据流。其返回值为接到字符串地址即str,若失败则返回NULL


我们可以通过下面简单的例子了解其作用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main()
{
    FILE *fp;
    char str[200];
    fp=fopen("d:\\dotcpp.data","r");
    if(fp!=NULL)
    {
        fgets(str,200,fp);
    }
    puts(str);
    fclose(fp);
 
    return 0;
}

可以看到,依旧是先fopen打开文件,需要注意的是,注意打开模式要具备读模式,才可以用fgets函数,将文件中的内容读到str里(注意str的空间要足够大)然后通过puts函数输出即可看到效果,假设dotcpp.data文件中有一串字符串:www.dotcpp.com

那么程序运行后,输出则为:

fgets用法示例

需要注意的是,如文件中内容遇到回车或达到最大获取数量,都会结束,大家可以上机实验。

用法二,从标准输入获取内容:

除此之外,fgets也可以通过更改获取数据流的方式,改为从键盘获取内容,代码如下:

1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
{
    char str[200];
    fgets(str,200,stdin);
    puts(str);
    return 0;
}

可以看到,在fgets函数的第三个参数改为stdin即可,大家可以亲自上机实验!


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)
#include<stdio.h>
int main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX