Welcome to Yumao′s Blog.
C语言文件IO(3)
, 2011年06月27日 , C Language , 评论 0 ,

從這幾次的的日誌當中大家應該都知道怎麽進行簡單的文件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 {
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;
}

從代碼量和執行時間來説
下面的方法是更加有優勢的
但是在調試方面
上面的方法更加的數據可觀
兩种方法喜歡哪种就挑哪种就好
個人表示簡單快速便捷才是現在編程最主要的

关键字:, , ,

评论已关闭