1. 程式人生 > >c語言中對檔案的建立和讀寫

c語言中對檔案的建立和讀寫

在c語言中,fopen用於建立檔案,fwrite用於將資料寫入檔案,而fread用於讀取檔案中的資料,fclose用於關閉檔案(在有些編輯器中如VS2017要使用fopen_s、fwrite_s和fread_s、fclose_s或者在程式碼開始前使用#pragram warning(disable:4996,不然編譯器會認為這樣為“unsafe”)。

格式:

fopen:FILE* p=fopen(檔案路徑,讀寫屬性)

fwrite:fwrite(寫入內容的地址,size_t size(此處一般設為1),讀取字串的最大長度,p)

fread:size_t fread(讀取內容的地址,size_t size(同上),讀取字串的最大長度,p)

下面將使用例子對這三個關鍵字進行了解。

建立和寫入資料,如:

#pragma warning(disable:4996)
#include<stdio.h>
int main()
{
const char *filename = "F:/file.txt";    /*“..."為建立的檔案的儲存位置,txt字尾可用其他字母代替如abc之類的。*/
FILE *p = fopen(filename, "wb"); //wb表示可以寫入資料
char ch[] = "HelloWorld!";
fwrite(ch, 1, sizeof(ch), p);  //寫入資料
fclose(p);       //關閉檔案
return 0;

}

例2:

#pragma warning(disable:4996)
#include<stdio.h>
int main()
{
const char *filename = "F:/file.txt";
FILE *fp = fopen(filename, "wb");
int integer[4] = { 123,456,789,124};
for (int i = 0; i < 4; ++i)       //寫入資料
{
char integ[16];
sprintf(integ, "%d,", integer[i]);
fwrite(integ, 1, 4, fp);
}
fclose(fp);
}

但是,使用“wb”的時候,你會發現,當你將“HelloWorld!”替換為其他字串時,你會發現檔案file.txt中的內容也會被替換,要解決這個問題,可以將“wb”改為“ab”,這樣就可以保留“HelloWorld!”,並將其他字串寫在“HelloWorld!”的後面。

讀取資料的例子:

#pragma warning(disable:4996)
#include<stdio.h>
int main()
{
const char *filename = "F:/file.txt";
FILE *fp = fopen(filename, "wb");
int integer[4];
int n = fread(integer, 1, 16, fp);
fclose(fp);
}

相關推薦

java語言檔案基本的操作

 public static void main(String[] args) {   File cfile = new File("newnewtest.txt");   if(cfile.exists()){    try {     FileInputStream fis = new FileInput

c語言檔案建立

在c語言中,fopen用於建立檔案,fwrite用於將資料寫入檔案,而fread用於讀取檔案中的資料,fclose用於關閉檔案(在有些編輯器中如VS2017要使用fopen_s、fwrite_s和fread_s、fclose_s或者在程式碼開始前使用#pragram warn

C語言棧的建立應用

棧的特點為: 先進後出(first in last out)。 棧中有兩個指標,棧頂指標和棧尾指標。其中,棧尾指標是不動的。用棧頂指標等於棧尾指標來判定棧是否為空。壓棧時,將棧頂指標+1,然後將資料存

C語言樹的建立遍歷

樹的遍歷分為三種:前序遍歷(根左右),中序遍歷(左根右),後序遍歷(左右根)。 PS:根左右,就是先遍歷根節點,然後是左子樹,最後是右子樹。如下圖: 前序遍歷:ABDECF。 中序遍歷:DBEACF

C語言檔案操作的小結

在C語言中,檔案的操作是通過FILE結構體進行了,具體實現時,先利用fopen返回一個指向FILE結構體的指標: FILE *fopen( const char *filename, const char *mode ); filename:檔名,mode:開啟的模式,規定

C語言時間日期的處理

北京燕園智峰韓語培訓中心 韓語:依附於漢城(首爾)著名大學--漢城(首爾)大學的授課內容,短期內使學員快速掌握韓語培訓的聽、說、讀寫能力。教員由漢城(首爾)著名大學--延世大學的講師和漢城(首爾)專業培訓的歸國老師共同打造韓語課程。本班質量可靠、學費低廉,是大學生選擇學韓語的首佳之選。培訓機構自從開辦六年以

c語言字段寬度的理解?

style lib include creat span 演示 file code pre 1 /************************************************************************* 2 >

C語言無符號數有符號數相加比較的問題

轉自https://blog.csdn.net/supreme42/article/details/6687781 看個題: #include<stdio.h> int main() { unsigned int a=6; int b=-20; printf("%d\n"

C語言字串的操

最近對於C語言接收到的資料(字串)處理比較多。 字串:零個或多個字元組成的有限序列。假設:S="abcd1234efghmn",其中S是串列埠,字串中的字元可以是字元、數字或其他字元。 #include <string.h> #include <stdio.h>

C語言的淺拷貝深拷貝

淺拷貝 首先看下面這段程式碼: # include<assert.h> # include<string.h> #include <stdlib.h> typedef struct Node//定義了一個結構體 { int size; char *da

C語言以資料塊的形式檔案

C語言以資料塊的形式讀寫檔案 fgets() 有侷限性,每次最多隻能從檔案中讀取一行內容,因為 fgets 遇到換行符就結束讀取。如果希望讀取多行內容,需要使用 fread 函式;相應地寫入函式為 fwrite。 fread() 函式用來從指定檔案中讀取塊資料。所謂塊資料,也就是若干個位

C語言的隨機數 srand ( ) rand ( )

在C語言中,生成一個隨機數,一般利用兩個函式,即void srand ( unsigned int seed ) 和 int rand ( void )。     srand() 函式用於生成一個隨機數種子,種子的值等於引數seed,這個引數由我們指定一個

C語言的單引號雙引號的區別

  首先肯定地說,二者是有區別的,不是說用誰都一樣。 1、實質區別,代表的含義不同 'A'代表的是一個整數,而且這個整數對應的是編譯器所採用的字符集中的字元序列對應的數值。所以'A'跟ASCII中的65意義是相同的。 1 # include <iostream>

C語言的指標陣列陣列指標

可以將 *string看成陣列 a[] 下的a,即指標是指向陣列的首地址的; 指標陣列是陣列元素為指標的陣列(例如 int *p[3],定義了p[0],p[1],p[2]三個指標),其本質為陣列。 指

C語言宣告、定義初始化的區別

函式和變數(全域性變數)都有宣告和定義, 對於函式而言: 同一檔案內,如果函式fun_1呼叫fun_2時,如果fun_2在fun_1之後定義,則需在fun_1之前對fun_2進行宣告,如下: void fun_2();// 宣告 void fun_1() { ... fu

C 語言的結構體共用體(聯合體)

本文主要總結了譚浩強主編的《C 程式設計》教材中結構體和共用體相關章節的內容。 在 C 語言中, 結構體(struct) 是一個或多個變數的集合,這些變數可能為不同的型別,為了處理的方便而將這些變數組織在一個名字之下。由於結構體將一組相關變數看作一個單元而不是各自獨立的實體,因此結構體有助於組織複雜的資料,

C語言變數的宣告定義

變數宣告和變數定義變數定義:用於為變數分配儲存空間,還可為變數指定初始值。程式中,變數有且僅有一個定義。變數宣告:用於向程式表明變數的型別和名字。定義也是宣告,extern宣告不是定義定義也是宣告:當定義變數時我們聲明瞭它的型別和名字。extern宣告不是定義:通過使用ext

C語言的靜態變數普通變數的區別

下面用程式碼說明: 一個可執行程式包括BSS段、資料段、程式碼段(文字段)。 bss segment ,data segment ,code/text segment ①BSS(Block by Start Symbol) :通常指用來存放程式中未初化的全域性變數和靜態變數

C語言檔案的全域性變數

宣告:突然看到這篇文章,發現了c語言中使用全域性變數的錯誤,特轉之。 func.c 123456 int buf = 0; void func() { buf = 2; /* Do something else */ } ma

C語言檔案

所謂檔案(file)一般指儲存在外部介質上資料的集合,比如我們經常使用的mp3、mp4、txt、bmp、jpg、exe、rmvb等等。這些檔案各有各的用途,我們通常將它們存放在磁碟或者可移動盤等介質中。那麼,為什麼這裡面又有這麼多種格式的檔案呢?原因很簡單,它們各有各的用