fgets讀取多行檔案 檔案操作

2021-10-17 09:27:40 字數 2970 閱讀 6274

#include#include#includetypedef struct

data;

void test01()

if(data2.name != null) }

int main(int argc,char *ar**)

總結:前提就是指標變數 作為 結構體的成員淺拷貝:兩個結構體變數 中的 指標成員 指向 同一塊堆區空間。深拷貝:兩個結構體變數 中的 指標成員 指向 各自的堆區空間。

1、檔案的訪問過程

緩衝區的目的:提高訪問效率 磁碟使用壽命

2、磁碟檔案的分類0-2

物理上 所有的磁碟檔案都是 二進位制儲存,以位元組為單位 順序儲存。

邏輯上的檔案分類:

二進位制檔案:基於值編碼的檔案

總結:(重要)

3、檔案指標

注意:不要關係file的細節 只需要 會用file 定義指標變數就行:file *fp=null;

4、fopen開啟乙個檔案

檔案使用方式:

r:以唯讀的方式開啟檔案

w:以只寫的方式開啟檔案

a:以追加的方式開啟檔案(往檔案的末尾寫入資料)

+:以可讀可寫的方式開啟

b:以二進位制的方式開啟檔案

t:以文字的方式開啟檔案(省略)

開啟方式的組合形式:1-1

關閉檔案fclose

知識點3【檔案的位元組讀寫】

1、位元組的讀操作 fgetc函式

void test03()

//2、對檔案的操作 fgetc

while(1)

i++;

} printf("buf=%sn", buf);

//3、關閉檔案

fclose(fp);

}

執行結果:事先 本地 建立a.txt 檔案內容 為 hello file

2、位元組的寫操作 fputc

void test04()

//使用fputc進行檔案的資料寫入

printf("請輸入要寫入檔案的字串:");

fgets(buf,sizeof(buf),stdin);//會獲取換行符

buf[strlen(buf)-1] = 0;//去掉鍵盤輸入的換行符

//將字串buf中的元素 逐個寫入檔案中

while(buf[i] != '0')

fclose(fp);

}

練習:從乙個檔案(文字檔案)中讀取所有資訊,寫入另乙個檔案

void test05()

//以只寫的方式開啟b.txt

fp2 = fopen("b.txt","w");

if(fp2 == null)

//從fp1中 每讀取乙個 位元組 寫入到fp2中

while(1)

fclose(fp1);

fclose(fp2);

return;

}

1、使用fputs 往檔案中寫入乙個字串練習

void test06()

; int n = sizeof(buf)/sizeof(buf[0]);

file *fp = null;

int i=0;

fp = fopen("c.txt", "w");

if(fp == null)

for(i=0;i2、使用fgets從檔案中獲取字串

返回值:

成功:返回讀到字串的首元素位址

失敗:返回null

獲取檔案一行的資料:

void test07()

//err 開啟乙個檔案名叫"path" 而不是path指向的檔名"c.txt"

//fp = fopen("path", "r");

//fp = fopen("c.txt", "r");

while(fgets(buf,sizeof(buf),fp))

fclose(fp);

}

1、使用fwrite 將 資料塊 寫入到檔案中

typedef struct

hero;

void test08(), ,

, }; int n = sizeof(hero)/sizeof(hero[0]);

file *fp = null;

fp = fopen("hero.txt", "w");

if(fp == null)

//fwrite 將記憶體的資料原樣的 輸出到 檔案中

//寫入檔案的資料 不便於 使用者檢視 但是 不會影響 程式的讀

fwrite(hero, sizeof(hero), n, fp);

fclose(fp);

}

2、使用fread 從檔案中 讀取 資料塊練習

void test09()

fread(hero,sizeof(hero), 4, fp);

for(i=0;i<4;i++)

fclose(fp);

}

php函式fgets讀取檔案

如果乙個檔案比較大,可以考慮用fgets函式 下面是個例子 檔案作用 fgets讀取檔案 start time microtime true file name a.txt handle fopen file name,r i 0 if handle end time microtime true ...

python with as 進行檔案讀取

1.用with.as.來做檔案內容的讀取 在內容不多的情況下,如果檔案巨大,還是一行一行讀取吧 filename os.path.join self.data path,annotations index txt with open filename as f lines x.strip for x...

python讀取多行檔案的三種方法

如圖多行的資料檔案讀入,直接上 方法一 for line in open r c users desktop stat.txt print line 方法二 f open r c users desktop stat.txt r lines f.readlines for line in lines...