博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
083.封装fgetc和fputc
阅读量:6257 次
发布时间:2019-06-22

本文共 1543 字,大约阅读时间需要 5 分钟。

#include<stdio.h>

#include<stdlib.h>
void my(char *ccc, int bbb, FILE*read) {
for (size_t i = 0; i < bbb-1; i++)
{
char teamp= fgetc(read);
ccc[i] = teamp;
if (feof(read)!= 0) {
ccc[i] = '\0';
break;
}
else if (teamp == '\n') {
ccc[i+1] = '\0';
break;
}
}
}
void main() {
char abc[200] = { 0 };
printf("请输入原始地址");
scanf("%s", abc);
FILE*read = fopen(abc, "r");
char teamp[90] = { 0 };
if (teamp!=NULL) {
while (feof(read)==0) {
my(teamp, sizeof(teamp), read);
printf("%s", teamp);
}
}
fclose(read);
system("pause");
}

我们之前学习的fgetc和fputc,一次只能读入或者写出一个char字节。

为了能够让这两个函数更加好用一点,我们进行一下封装。
fgets和fputs分别是fgetc和fputc的封装.
fgets是读入一行.
fputs是写出一段文本.

 

//读入一行字符串

void my_fgets(char *p_buffer, int p_maxcount, FILE *p_read) {
 for (size_t i = 0; i < (p_maxcount - 1); i++) {
  char l_temp = fgetc(p_read);
  p_buffer[i] = l_temp;
  if (l_temp == '\n') {
   p_buffer[i + 1] = '\0';
   break;
  }
  else if (feof(p_read) != 0) {
   p_buffer[i] = '\0';
   break;
  }
 }

 

}

 

 

 


 

#include<stdio.h>

#include<stdlib.h>
#include<string.h>

 

void main1() {
 char l_in_path[200] = { 0 };
 printf("请输入要处理的文件:");
 scanf("%s", l_in_path);
 FILE * l_fp_read = fopen(l_in_path, "r");
 if (l_fp_read != NULL) {
  char l_temp[7] = { 0 };

 

  while (feof(l_fp_read) == 0) {

   fgets(l_temp, sizeof(l_temp), l_fp_read);
   printf("%s", l_temp);
  }
 }

 

 system("pause");

}

 

void main() {

 char l_out_path[200] = "456.txt";
 FILE * l_fp_write = fopen(l_out_path, "w");
 if (l_fp_write != NULL) {
  fputs("你好,我是一名中国人.\n我特别热爱编程!", l_fp_write);
 }
 fclose(l_fp_write);
 system("pause");
}

 

转载于:https://www.cnblogs.com/xiaodaxiaonao/p/8735941.html

你可能感兴趣的文章
WCF和ASP.NET Web API在应用上的选择
查看>>
关于空指针NULL、野指针、通用指针
查看>>
从GIMP的Retinex算法里发现了一种高斯模糊的快速实现方法【开发记录】。
查看>>
c编写程序完成m名旅客和n辆汽车的同步程序代写
查看>>
oracle与sqlserver区别
查看>>
hdu4722之简单数位dp
查看>>
Android Fragment 学习<四>
查看>>
js 控制图片大小核心讲解
查看>>
从零开始编写自己的C#框架(2)——开发前准备工作
查看>>
装机 win7 64 IE11
查看>>
约瑟夫环问题
查看>>
五子棋
查看>>
和为S的连续正数序列
查看>>
三周的 软件工程实践课 课程安排建议
查看>>
解决冲突-git入门教程
查看>>
修改ssh端口后无法连接ssh了?
查看>>
[android] 隐式意图的配置
查看>>
HQL: Hibernate查询语言
查看>>
SQL优化之六脉神剑
查看>>
java生成随机字符串uuid
查看>>