求大神指点:C++里头fgets()到底是怎么用的???

马上要急疯了!不要说fgets()和scanf()和gets()的区别,就只要fgets()的具体用法!别复制!网上教程十有八九都看过了,最好能纯原创!还有麻烦说明一下fgets()三个参数到底是说明什么东西!越详细越好,满意增加悬赏!

单说读入字符串,scanf和gets只可以从键盘读入,而fgets可以通过第三个参数控制从键盘读入或者文件(如.txt,.dat,.inf)读入

fgets(char *str, int len, FILE *stream)

第一个参数是字符串数组,第二个是可以读入到字符串中字符的最大个数,第三个是文件流,若为stdin则从键盘读入,若是FILE*指针则从文件中读取

#include <cstdio>

int main()
{
    char str[32];
    fgets(str, 10, stdin);
    
    printf(str);
    //    读入123456789回车 
    //    输出123456789换行
    
    //    读入1234567890回车
    //    输出123456789
     
    return 0;
}

#include <cstdio>
#include <cstring>

int main()
{
    char str[128];
    FILE *fp = fopen("./a.txt", "r");
    
    //    逐行读入本地文件 a.txt 的内容并输出 
    while( !feof(fp) )
    {
        memset(str, 0, sizeof(str));
        fgets(str, sizeof(str)-1, fp);
        puts(str);
    }
    
    return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答