文件在計算機的世界裏非常非常的重要,特別是在Linux和Unix系統中,在Linux系統和Unix系統裏把一切都當做了文件進行處理。鼠標、鍵盤、顯示器等等都看着了一個文件進行處理。因此在學習C語言的過程中瞭解文件就顯得尤爲重要。
在進行文件操作的時候要把fopen和fclose當做兩口子,他們倆一定要成對的出現,如果不是成對的出現你就是拆散別人兩口子的壞人(凝視.jpg)
一、文件打開
注意:這裏的打開文件並不是像我們用鼠標雙擊txt文件、exe文件那樣打開。這裏的打開是一個狹義的打開,可以理解爲進入到這個文件裏頭去。
在這一部分還有一個很重要的東西就是文件指針,所以說掌握好指針在C語言中非常重要。在前面我們已經知道指針可以指向一個數組,指向一個變量,在這裏我們要讓一個指針指向文件,以實現對文件的操作。
以下程序就是打卡test.txt這個文件,如果test.txt不存在則程序會創建一個test.txt,如果test.txt存在那麼就打開他。
#include<stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "r");
if(fp == NULL)
printf("fail to open the file! \n");
else
{
printf("The file is open! \n");
fclose(fp);
}
return 0;
}
運行完了之後我的程序的文件夾下就多了一個test.txt了。因爲我給了w+的權限。當然,這個test.txt裏面是空的,啥也沒有。
再強調一哈,這裏的打開不得是打開成這個樣子哈,這個叫打開一個程序了。
二、文件寫入
在上面我們說如果沒有test.txt在給了足夠的權限的情況下程序會創建一個test.txt文件。如果我們現在已經有了文件,但是裏面是空的我們想要給存一點東西該怎麼辦呢?
這裏就用到了fprintf和fputs這兩個函數了。通過這兩個函數實現對文件進行寫入。注意,寫完了之後一定要關閉文件,不要拆散別人兩口子
#include <stdio.h>
int main()
{
FILE *p=fopen("test.txt","w+");
fprintf(p,"也許你會迷茫\n");
fputs("但是千萬不要放棄",p);
fclose(p);
return 0;
}
我們現在打開test.txt文件就變成了這個樣子。
三、文件讀取
在上面我們給文件寫入了內容,但是我們想要知道是什麼還得從目錄去打開記事本才能看到。那麼我們能不能就像字符串這些一樣就在我們的小黑窗裏顯示把他們一個一個兒的顯示出來呢?肯定是可以滴。
#include <stdio.h>
int main()
{ FILE *p;
char c;
p=fopen("test.txt","r");
while((c=fgetc(p))!=EOF)
{
putchar(c);
}
putchar('\n');
fclose(p);
return 0;
}
運行結果
四、文件刪除
哈哈哈,學完了文件的創建、寫入、讀取之後是不是覺得這玩意兒太扯dan了。沒事,我們現在來學習怎麼把它給刪了。這裏的文件刪除是刪除文件而不是刪除文件裏面的東西。
#include <stdio.h>
int main()
{
remove("test.txt");
return 0;
}
程序運行前
程序運行後
五、權限
模式 | 描述 |
---|---|
r | 打開一個已有的文本文件,允許讀取文件。 |
w | 打開一個文本文件,允許寫入文件。如果文件不存在,則會創建一個新文件。在這裏,您的程序會從文件的開頭寫入內容。如果文件存在,則該會被截斷爲零長度,重新寫入。 |
a | 打開一個文本文件,以追加模式寫入文件。如果文件不存在,則會創建一個新文件。在這裏,您的程序會在已有的文件內容中追加內容。 |
r+ | 打開一個文本文件,允許讀寫文件。 |
w+ | 打開一個文本文件,允許讀寫文件。如果文件已存在,則文件會被截斷爲零長度,如果文件不存在,則會創建一個新文件。 |
a+ | 打開一個文本文件,允許讀寫文件。如果文件不存在,則會創建一個新文件。讀取會從文件的開頭開始,寫入則只能是追加模式。 |
至讀者:如果您在閱讀的過程中發現文中有錯誤或不當之處望指正,感激不盡!