要求:提供如下函数:
char *ReadALine(char *buf, int n, FILE *fp);
参数与返回值的含义,同fgets
char *ReadALine(char *buf, int n, FILE *fp);
参数与返回值的含义,同fgets
#include "stdafx.h"
#include<iostream>
#include<stdio.h>
using namespace std;
char* ReadALine(char *buf,int n,FILE * fp)
{
char c;int i=0;
while ( (c=getc(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;
}
int main()
{
FILE *f=fopen("F:\\read.txt","r");char c;
cout<<"文章的全部内容:"<<endl;
while ((c=getc(f))!=EOF)
{
cout<<c;
}
cout<<endl;
fclose(f);
FILE *fstandar=fopen("F:\\read.txt","r");
char standard[30];
fgets(standard,20,f);
cout<<"标准的fgets输出:"<<standard<<endl;
fclose(fstandar);
FILE *fmyself=fopen("F:\\read.txt","r");
char myself[30];
ReadALine(myself,20,fmyself);
cout<<"我的输出是:"<<myself<<endl;
fclose(fmyself);
return 0;
}