使用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;*/
#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;*/
相关文章推荐
- 使用fgetc实现fgets的功能
- SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表
- 使用ADF-BC 实现查询功能之八:通过代码动态设置Criteria条件参数
- JavaScript中使用参数个数实现重载功能
- 使用SpringAOP切面实现对controller的拦截,并对url,参数和返回值记录
- 使用ADF-BC 实现查询功能之四:通过代码动态设置Where条件参数
- 使用文件流下载文件功能实现 [原]
- 关于使用LinkButton实现点击超链完成文件下载的功能
- 使用Session记录页面地址和实现页面返回功能
- [原创]使用自定义类库实现中间件的功能
- CDC使用技巧之最快最方便的实现放大缩小功能
- 如何使用表名做为参数实现存储过程的设计
- 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能
- C#实现SMTP服务器,使用TCP命令实现,功能比较完善
- 使用Windows服务实现投票结果的自动发送功能
- 在C#中实现打印功能(C#中PrintDialog,PrintDocument的使用)
- 使用Spring framework实现定时器功能
- 使用xml绑定实现分页功能
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [2] C# 实现
- CDC使用技巧之最快最方便的实现放大缩小功能