C库函数-fgets()

函数声明:char *fgets(char *str,int n,FILE *stream)

函数介绍:从指定的stream流中读取一行,并把它存储在str所指向的字符串中。当读取到(n-1)个字符时,获取读取到换行符时,或者到达文件末尾时,他会停止。具体视情况而定。

函数参数:

l  str –- 这是一个指向字符数组的指针,该数组存储了要读取的字符串。

l  n – 这是读取的最大的字符数(包括最后面的空字符),通常是使用str传递的数组长度。

l  stream – 这是指向FILE对象的指针,该FILE对象标识了要从中读取的字符串。

返回值:如果成功,该函数返回相同的str参数,如果到达文件末尾或者没有读取到任何字符,str内容保持不变,并返回一个空指针。

 

实例:

复制代码
/*
fgets.c
*/
int main()
{
    FILE *fp;
    char str[60];
    
    fp = fopen("file.txt","r");
    if(NULL == fp)
    {
        perror("open the file error");
        return 0;
    }
    while(NULL != fgets(str,60,fp))
    {
        puts(str);
    }
    fclose(fp);
    return 0;
}    
复制代码
/*
file.txt
*/
this is first line
this is second line

this is three line

输出结果:

exbot@ubuntu:~/wangqinghe/Transducer/20190712/01$ ./fgets

this is first line

 

this is second line

 

 

 

this is three line

 

exbot@ubuntu:~/wangqinghe/Transducer/20190712/01$ gedit fgets.c file.txt

 

puts(str);//自带“\n”

改为:printf(“%s”,str);

运行结果:

exbot@ubuntu:~/wangqinghe/Transducer/20190712/01$ ./fgets

this is first line

this is second line

 

this is three line

posted @   王清河  阅读(373)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2018-07-12 1064 Complete Binary Search Tree (30)
2018-07-12 1043 Is It a Binary Search Tree (25)
2018-07-12 1053 Path of Equal Weight (30)
点击右上角即可分享
微信分享提示