您的位置:首页 > 其它

使用fgetc实现fgets的功能 参数与返回值的含义,同fgets

2016-11-24 17:56 274 查看
// 2.7.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"

#include <string.h>

#include<windows.h>

char *ReadALine(char *buf, int n, FILE *fp);

int _tmain(int argc, _TCHAR* argv[])

{

    FILE *fp = fopen("temp.txt", "w");

    if(fp == NULL)

        return 0;

    fputs("Hello World!\n", fp);

    fputs("Hello China!\n", fp);

    fputs("Hello Teacher!\n", fp);

    fclose(fp);

    fp = fopen("temp.txt", "r");

    if(fp == NULL)

        return 0;

    char buf[30];

    for(;;)

    {

        ReadALine(buf, 30, fp);

        if(feof(fp) != 0)

            {

                printf("file end\n");

                break;

            }

         printf("%s\n",buf);

        

    }

        fclose(fp);

    system("pause");

    return 0;

    

}

//作业2

char *ReadALine(char *buf, int n, FILE *fp)

{

    char c;

    int i=0;

    while((c=fgetc(fp))!=EOF)

    {

        if(c=='\n'||c=='\r')  

            {  

                buf[i++]='\0';  

                break;  

            }  

            if(i==n-1){buf[i]='\0'; break;}  

            else buf[i++]=c;  

     }  

        return buf;  

    }

    /*for(;;)

    {

        if (fgetc(fp)==EOF) break;

        for(int i=0;i<n;i++)

        {

            if(feof(fp) != 0) break;

            buf[i]=fgetc(fp);

        

        printf("%s", buf);

            

        }

}

    printf("file end\n");

    return buf;*/

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: