← 回到文章列表

C语言文件IO(3)

从这几次的的日志当中大家应该都知道怎么进行简单的文件IO了 但是从根本来说还是没有涉及到IO的中心 毕竟我们IO不仅仅只是用来读取和存储文件 更重要的是处理文件 我们可以用C语言来处理文本文件 进行分本的批量分类修改等等操作 我们先从最简单的修改开始吧 一切的一切之前   我们要…

从这几次的的日志当中大家应该都知道怎么进行简单的文件IO了
但是从根本来说还是没有涉及到IO的中心
毕竟我们IO不仅仅只是用来读取和存储文件
更重要的是处理文件
我们可以用C语言来处理文本文件
进行分本的批量分类修改等等操作
我们先从最简单的修改开始吧


一切的一切之前   我们要先理解处理数据的方式
文件数据处理有很多种
从方式来说我们可以将所有文本进行变量存储之后
再进行修改和转储
又或者是替换操作的话
我们可以直接便读取便修改进行转储
我们先从文件变量转储说起吧
在所有的之前  我们先将文件的内容转储到字符数组中\

#include "stdio.h"
main()
{
  FILE* p=NULL;                 
  p=fopen("text.txt","r");   
  char str[100]="0";
  int i=0;
  while((str[i]=fgetc(p))!=EOF)
    {
      i++;
    }
  return 0;
}



在这里 我们就是将text.txt文件的内容转储到str字符数组中
当然的  我们也可以进行中文字符的储存
但是  你需要了解  英文字符和数字只需要一个字符位储存
而中文需要两个
我们先运行一下看下上面代码的结果
[媒体不可用]

然后的话  我们就进行下数据的处理好了
用两种方式处理text.txt文件
使之所有的大写字符转换成小写转储到copy.txt文件内
先是变量转储修改方法:\

#include "stdio.h"
#include "string.h"
main()
{
  FILE* p=NULL;   
  FILE* q=NULL;                
  p=fopen("text.txt","r");   
  q=fopen("copy.txt","a");
  char str[100]="0";
  int i=0;
  while((str[i]=fgetc(p))!=EOF)
    {
      i++;
    }
  for(i=0;i<strlen(str);i++)
    {
     if(str[i]>='A'&&str[i]<='Z')
          str[i]=str[i]+32;   
    fputc(str[i],q);
    }
  return 0;
}


然后是逐字修改型  其实和上面也差不多
\

#include "stdio.h"
main()

{
  FILE* p=NULL;     
  FILE* q=NULL;             
  p=fopen("text.txt","r");  
  q=fopen("copy.txt","a"); 
  char ch;
  while((ch=fgetc(p))!=EOF)
    {
    if(ch>='A'&&ch<='Z')
  ch=ch+32; 
    fputc(ch,q);
    }
  return 0;
}



从代码量和执行时间来说
下面的方法是更加有优势的
但是在调试方面
上面的方法更加的数据可观
两种方法喜欢哪种就挑哪种就好
个人表示简单快速便捷才是现在编程最主要的

[媒体不可用]

在这里找找

输入关键词,找一篇过去的记录。