但是假使平常比較不常做這些處理,當要你作的時候,真的是很要人命
因此作一些筆記是必要的,到時候要處理檔案的時候,就可以很快上手了
這邊分三部分來作筆記,分別為讀檔,寫檔,讀檔並寫檔
===========================================================
首先是讀檔的部分:
讀檔和寫檔是較為簡單的部分,讀檔的話基本上第一步先對檔案作fopen
接著只要使用fgets,這支C函式可以幫你把檔案一行一行的讀出來,fgets也會在每一行讀到結
尾"\n"時幫你把檔案指標指到下一行的起始
簡單的範例如下:
///////////// Read_File.c////////////////////
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#define PATH "/etc/login.info"
int main()
{
FILE *fptr;
char login_info[128];
if ((fptr = fopen(PATH, "r")) == NULL)
{
printf("open_file_error");
exit(1);
}
while(fgets(login_info, 128, fptr) != NULL)
{
//fgets會把每一行資訊copy到login_info字元陣列
//此處油開發者自行決定要對讀出的內容作甚麼處理
//寫檔則再搭配使用 fwrite(buffer,1,sizeof(buffer),fptr);
}
fclose(fptr);
return 1;}
///////////////////////////////////////////////////////////////////////
fopen的第二個參數,用法請參考下圖:
接著是讀檔並且同時寫檔,作者這邊就只作一些重點整理了
首先也是對檔案作fopen,後面參數就請填上"r+"
接著以下這幾個function的使用就是讀檔並同時寫檔的重點
**********************************************
int ftell(FILE *fptr);
==>這支function可以取到目前fptr所offset的位置
舉個例子有個login.info的檔案內容如下:
username:admin
password:1234
那我用fptr=fopen("login.info", "r+")之後再搭配fget一次之後去作ftell(fptr)會等於15
也就是此時指標的位置會是在第二行一開頭
******************************************************
******************************************************
第二個重要的是
rewind(FILE *fptr);
==>這支function可以把fptr指標移到最前頭
*******************************************************
**************************************************
最後一個是
fseek(FILE *fptr, int offset, SEEK_SET);
==>此fuction可以幫你把fptr的指標位置移到你想要開始的地方
接著你可以作fprintf(fptr, " "); 你就可以修改你想改寫的部分了
******************************************************
沒有留言:
張貼留言