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;
}
从代码量和执行时间来说
下面的方法是更加有优势的
但是在调试方面
上面的方法更加的数据可观
两种方法喜欢哪种就挑哪种就好
个人表示简单快速便捷才是现在编程最主要的
[媒体不可用]