❶ C#如何自定義文件類型 並設定好寫入讀取方式
這個其實不復雜,文件都是二進制的,一般情況下你只需要使用二進制序列化你的存儲對象,有必要的話用加密流和壓縮流包裝兩次,讀取的時候逆序包裝讀取就可以了。
❷ 如何用c語言創建一個自定義後綴名(如.abc)的文件,要能讀寫操作
文件基本操作即可實現
fp=fopen("fun.abc","w");
❸ 在c語言中,如何自定義頭文件
自定義頭文件通常放在使用該頭文件的源文件所在的目錄中,專並使用#include "MyHead.h"來包含。
頭文件是不編譯屬的,因為C語言編譯過程之前有個預編譯過程。在這個過程中用頭文件中的內容替換源文件中「#include」命令,所以在編譯器看來,沒有頭文件,只有源文件。預編譯過程還包括條件編譯。
頭文件為了防止被重復包含,通常的格式是:
/* MyHead.h */
#ifndef _MYHEAD_H_
#define _MYHEAD_H_
(這里是頭文件的內容)
#endif /* _MYHEAD_H_ */
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
❹ 在c語言中,如何自定義頭文件
自定義頭文件通常放在使用該頭文件的源文件所在的目錄中,並使用#include "MyHead.h"來包含。保存的地方和是否編譯等都不是頭文件決定的,頭文件只是用來聲明。
在c語言中,頭文件作為一種包含功能函數、數據介面聲明的載體文件,主要用於保存程序的聲明(declaration),而定義文件用於保存程序的實現 (implementation)。C語言的的頭文件以「.h」為後綴,而.c是程序文件。
頭文件一般由四部分內容組成:頭文件開頭處的版權和版本聲明、預處理塊、inline函數的定義和函數和類結構聲明等。在頭文件中,用 ifndef/define/endif結構產生預處理塊,用 #include 格式來引用庫的頭文件。
自定義頭文件的方法:
1、在.h頭文件中就包含函數的實現,.h文件包含以下函數:
void hello(void){printf("hello world ");}
2、在.h頭文件中只包含一些函數的聲明,沒有具體的實現。需要包含.h和.c文件,.c文件程序如下:
#include <stdio.h>
#include "test.h"
int main()
{hello();
return 0;}
(4)c定義自己的文件類型擴展閱讀
C語言中,頭文件的功能:
1、頭文件可以定義所用的函數列表,方便查閱你可以調用的函數。
2、頭文件可以定義很多宏定義,就是一些全局靜態變數的定義,在這樣的情況下,只要修改頭文件的內容,程序就可以做相應的修改,不用到繁瑣的代碼內去搜索。
3、頭文件只是聲明,不佔內存空間,要知道其執行過程,需要知道頭文件所申明的函數是在哪個.c文件里定義的。
4、調用了頭文件,就等於賦予了調用某些函數的許可權,如果你要算一個數的N次方,就要調用Pow()函數,而這個函數是定義在math.c裡面的,要用這個函數,就必需調用math.h這個頭文件。
❺ C語言定義一個頭文件的格式和引用它的方法
擴展名為.h的文件,在C語言中被稱為header file, 也就是頭文件。
頭文件的數據格式就是普通的文本文件,可以通過新建文本文件(txt),再把擴展名改為.h的方式創建,在此不贅述。
一、頭文件內容格式。
頭文件內容並沒有固定的格式要求,不過一般為防止嵌套引用給編譯器帶來死鎖或者沒必要的開銷,一般約定整個頭文件中所有內容在一個條件編譯下,即如下格式:
#ifndef 宏名
#define 宏名
//頭文件主體
#endif
這樣可以保證一個頭文件在一個源文件中最多隻被引用一次。為避免宏名重復,宏名一般由頭文件名轉換而來,如果頭文件名是xxx.h,那麼宏名一般定義為:
_XXX_H_
即前後各加一個下劃線,同時文件名中除數字、字母、下劃線以外的字元均轉換為下劃線(_)。
頭文件主體中內容同樣沒有做強制約定,可以出現在源文件(.c)中的任何代碼均可以放在頭文件中。不過一般情況下可以包括以下幾種內容:
1 引用其它頭文件,格式為
#include <xxx.h>
或
#include "xxx.h"
二者區別在介紹頭文件引用時再詳細介紹。
2 定義私有類型。比如
typedef unsigned long U32; //為了簡寫而給無符號32位整型定義一個新的名字
struct xxx {};
也可以是enum, union等復雜類型。
3 宏定義。比如
#define MAX(a,b) (a>b?a:b)
4 函數聲明。比如
void test_function(void);
5 全局變數聲明。比如
extern int global_var;
6 如果有一個靜態全局變數需要在不同源文件中使用,但各文件之間互不相關。那麼可以放在頭文件中。如:
static int gs_var = 3;
7 對於支持C99規范的C編譯器,還可以把內聯函數定義在頭文件中。比如
staticinlineintget_min(inta,intb)
{
if(a>b)returnb;
returna;
}
以上是常見的頭文件中的元素。但實際上頭文件中也可以放全局變數的定義,全局函數的實現等。但是頭文件中一旦定義了這樣的元素,這個頭文件在一個工程中只能被一個文件引用,否則編譯器會報重復定義的錯誤。
比如如果有一個規模很大的常量數組,比如一副圖片的二進制值,如果把它定義在源文件中,就會顯得很冗餘,因為並不會經常修改。 這時可以定義在頭文件中,只在一個源文件中引用,當有多幅圖片需要隨時更換時,也可以通過簡單的在源文件中修改引用的頭文件名達到修改的目的。
二、頭文件的引用。
頭文件引用的方法其實之前已經大致說過了,在源文件中引用頭文件和在頭文件中引用的格式是一樣的:
#include<xxx.h>或者
#include "xxx.h"
xxx為頭文件名。
用<>和""是有一定的區別的。在編譯器查找頭文件的時候,會在兩個區域分別查找。
一個是系統頭文件區域,即類似於stdio.h一類的C庫函數頭文件區。
另一個是自定義頭文件區,比如當前目錄,以及其它自定義的目錄。
用<>時,編譯器會先在系統區域查找,然後再查找自定義區域。而用""時則相反。
由於一般並不推薦自定義頭文件名與系統頭文件名相同(容易引起歧義並難以維護),所以先後順序並不是太重要,尤其在硬體速度越來越快的今天,使用哪種符號引用頭文件已經差別很小了。
❻ c語言文件類型指針
c語言文件類型指針是通過FILE *fp; 這種形式進行定義的。
關於FILE結構在VC6中有如下定義:
#ifndef_FILE_DEFINED
struct_iobuf{
char*_ptr;//文件輸入的下一個位置
int_cnt;//當前緩沖區的相對位置
char*_base;//指基礎位置(即是文件的起始位置)
int_flag;//文件標志
int_file;//文件描述符id
int_charbuf;//檢查緩沖區狀況,如果無緩沖區則不讀取
int_bufsiz;//文件緩沖區大小
char*_tmpfname;//臨時文件名
};
typedefstruct_iobufFILE;
#define_FILE_DEFINED
#endif
C程序用不同的FILE結構管理每個文件。程序員可以使用文件,但是不需要知道FILE結構的細節。實際上,FILE結構是間接地操作系統的文件控制塊(FCB)來實現對文件的操作的,如下圖:
上面圖中的_file實際上是一個描述符,作為進入打開文件表索引的整數。
文件是存放在物理磁碟上的,包括文件控制塊(FCB)和數據塊。文件控制塊通常包括文件許可權、日期(創建、讀取、修改)、擁有者、文件大小、數據塊信息。數據塊用來存儲實際的內容。當打開一個文件時,程序會將物理磁碟上的文件數據塊讀入到內存,然後通過文件指針的移動讀取內存中的文件數據。
相關函數:
FILE *fopen( char *file, char *open_mode ); //打開文件,讀文件到內存,返迴文件信息結構指針
int fread( char s, int size, int num, FILE *fp ); //按位元組讀取文件內容到s中
int fwrite( char s, int size, int num, FILE *fp ); //按位元組將s地址中的數據寫到文件中
char *fgets( char *s, int max_size, FILE *fp); //讀一行數據到緩沖區s中
intfseek( FILE *fp, long offset, int whence); //移動文件指針到指定位置
void rewind(FILE *fp); //回到文件頭
long ftell(FILE *fp); //得到當前文件偏移位置
fclose(fp); //關閉文件,刷新緩存到物理磁碟上
❼ c語言中文件類型有幾種
主要是兩種文件類型:1)文本文件,)二進制文件。
一般來說,人類可讀的文件都作為文本文件,例如一片文章。其餘都作為二進制文件,例如一個程序。
在C語言中,文件的操作是通過FILE結構體進行了,利用fopen返回一個指向FILE結構體的指針,在使用fopen函數過程中,使用mode控制符對是否打開哪類文件進行控制:
FILE *fopen( const char *filename, const char *mode );
filename:文件名,mode:打開的模式,規定了是可讀、可寫、追加之類的屬性。
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個二進制文件;只允許寫數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。
如果調用失敗,返回一個空指針。