亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        “文件”的趣味學習法探究

        2015-11-18 02:02:36程振
        亞太教育 2015年35期
        關鍵詞:趣味

        程振

        ?

        “文件”的趣味學習法探究

        程振

        摘要:在學習計算機C語言的過程中,經常會使用到C語言中的讀寫文件,在C語言中,眾多文件在操作的過程中都是通過庫函數來實現的,這里的庫函數主要分為讀和寫兩種操作。但是,用函數來操作“文件”可能會略顯枯燥,所以,在學習C語言的過程中,應當掌握趣味學習“文件”,各種函數在趣味的性質下也顯得不再乏味。本文對一些有關文件操作的函數使用及對比做出了一定闡述。

        關鍵詞:趣味;C語言;文件

        C語言中所有文件操作函數主要有fopen、fwrite、fread、fgetc、fputc、fscanf、fprintf、ftell、fseek等,雖然看上去略顯復雜,但只有充滿學習的動力就能將其很好的掌握,下面我們就來趣味解讀以下這些函數。

        一、流式文件操作

        上述的幾種函數基本上都是流式的文件操作,流式文件中構成文件的最基本的單位是字符,流式文件也就是有序字符的集合,它的長度正是這個文件中所有的字符的個數,所以,流式文件又叫做字符流文件。流式文件沒有具體的結構,并且管理起來也比較簡單,下面我們就介紹幾個流式文件:

        1.fopen(打開文件)與該打開文件fopen相關的函數就是open,fclose,它的表頭文件是#include,其中的定義函數為FILE * fopen(const char * path,const char * mode),每一個函數都需要一個函數說明,該打開文件的參數path字符串包含即將要打開的文件路徑和它相應的文件名,參數mode字符串就是所代表的流形態(tài)。其中mode的文件打開方式有以下幾種:r(read);w(write);a(append);t(text);b(banary);+。他們的意思依次是讀、寫、追加、文本文件、二進制文件、讀和寫。在打開文件的時候,如果文件能夠很順利的打開,則會返回到該流的相應文件指針,如果文件無法打開則會返回到NULL,這里就會存在一個錯誤代碼errno。

        2.fread和fwrite函數。這兩個函數可以對數據進行塊的操作,fread函數的一般調用形式是(buffer,size,count,fp);而fwrite函數的一般調用形式是(buffer,size,count,fp)。下面我們就對這兩個調用形式里的調用因素進行解釋說明:

        (1)buffer。Buffer是指針的意思,在fread函數中,buffer是它在載入數據的時候能夠存放數據的地方,然而對于fwrite來講,則只是輸出數據的地址。(2)size。它所代表的是應當讀寫的字節(jié)數目。

        (3)count。這是相對于size而言的,應當讀寫多少個size字節(jié)的數據項。

        (4)fp。意義很簡單,記住,它是文件型指針。

        在C語言中,還相應提供了一整塊數據的讀寫函數,也就是可以用來讀寫出一整組的數據。比如一個數組元素和一個結構變量的值等。再例如fread(fa,4,5,fp);它所表達的意思是從fp所代表的文件中,每一次讀取4個字節(jié)送入到fa實數組中去,并連續(xù)讀取5次,也就是這5個實數都被讀取到fa中。

        3.fgetc和fputc。這兩個函數是字符讀寫函數,fgetc函數(getc函數)的一般調用形式是ch=fgetc(fp),它們的用途可謂是十分重要,因為我們操作文件的主要目的就是為了讀取文件,它的作用就是從指定的文件中讀入一個字符,也就是從fp所指的文件中能夠讀出一個字符并賦給ch;在返回值的過程中,如果成功的話就能夠返回到所得到的字符上去,如果失敗的話則返回EOF(-1)。fputc函數的一般調用形式是fputc(ch,fp);它的作用不同于fgetc函數,它的作用是將一個字符寫到磁盤上的文件中去,也就是能夠將這其中的ch輸出到fp所指的文件中去;在返回值方面,如果成功的話就輸出相應的字符,如果失敗的話就返回EOF(-1)。上述函數就是我所選取的流式文件中的幾種,下面我們來對直接I/O文件操作進行一些闡述。

        二、直接I/O文件操作

        直接I/O文件操作是C語言中的另一種文件的操作模式,它和流式文件有很大的不同,它是通過直接存取文件來完成對文件的處理的,然而我們上述的流式文件操作則是通過緩沖區(qū)的特征來進行的。下面,我們就對直接I/O文件操作中的一些函數進行闡述,找一找它與流式文件的相同點和不同點:

        1.open函數。在打開文件的同時讓它返回到相應的句柄中,假如失敗的話,隨后就要返回小于零的數值,它的原型是int open(const char *path,int access[,unsigned mode]);這里面所涉及到的參數path就是將要打開的一個文件名,access就是其中所要打開的模式,mode是可選擇的項目。該函數主要用于表示文件的屬性是什么,在UNIX系統(tǒng)中比較常用,但是在DOS/WINDOWS這個參數中也并沒有什么具體的意義。例如,int handle=open(“c:msdos.sys”,O_BINARY|O_CREAT|O_ WRITE)。

        2.close函數??吹接⑽模氡卮蠹叶己苁煜?,是“關閉”的意思,該函數代表關閉一個句柄,它的原型是int close(int handle)。假如在返回的過程中成功,就把相應的數值返回到0.比如:close(handle)。

        3.Iseek函數。這個函數所代表的意思就是將文件定位到指定的位置,它的原型是long lseek(int handle,long offset,int fromwhere);其中的參數offset是移動的量的多少,fromwhere則是移動的位置變化是怎么樣的,在這個函數中要注意SEEK_CUR代表文件當前的位置,SEEK_END代表文件的末尾。舉一個簡單的例子:lseek(handle,-1234L,SEEK_CUR);//它的意思就是將存取的位置從現在的位置向前面移動1234個字節(jié)。x=lseek(hnd1,0L,SEEK_END);//的意思是將存取的位置移動到文件的最尾端,這里的x=文件尾的位置就是文件的長度。

        三、結語

        如果在學習C語言文件操作過程中很熟悉匯編過程的話會發(fā)現文件操作形式萬變不離其宗,直接I/O文件操作和流式文件的操作大體相同,也提供了相應的Unicode字符操作函數,比如_wopen等。這些操作中BCB可以幫助我們很多操作。C語言中的編程是計算機中相對比較復雜的東西,很多初學者也因此而很頭痛,但是只要找到這其中的奧妙,就會找到文件操作的趣味性。任何學習都需要興趣指引。

        參考文獻:

        [1]張荷花.ATLAS常規(guī)語言部分到C語言的轉換[D].吉林大學.2004.

        [2]劉沖.張瑋瑋.C語言中文件操作中讀寫數據函數的應用[J].黑龍江科技信息.2015,20:163-164

        [3]李躍.嵌入式實時操作系統(tǒng)設計方法研究[D].西南交通大學.2006.

        (作者單位:江蘇省宿城中等專業(yè)學校)

        猜你喜歡
        趣味
        趣味冷知識
        趣味冷知識
        趣味冷知識
        趣味冷知識
        趣味連連連
        趣味閱兵
        午睡的趣味
        特別文摘(2016年24期)2016-12-29 21:03:08
        妙趣橫生的趣味創(chuàng)意
        趣味型男
        讓你HOLD不住的趣味創(chuàng)意
        亚洲激情一区二区三区视频| 成人免费视频在线观看| 国产激情久久99久久| 亚洲av精品一区二区| 中文字幕人妻饥渴浪妇| 亚洲看片lutube在线观看| 欧美午夜刺激影院| 在线一区二区三区视频观看| 亚洲免费一区二区三区四区| 免费人成激情视频在线观看冫 | 欧美三级一区| 一区二区三区国产精品| 久久久精品毛片免费观看| 久久久久亚洲av无码麻豆| 亚洲成在人线久久综合| 亚洲免费人成网站在线观看 | 一区二区三区视频免费观看在线| 亚洲av片无码久久五月| 军人粗大的内捧猛烈进出视频| 在线无码国产精品亚洲а∨| 中文字幕亚洲中文第一| 欧美日韩精品乱国产| 久久久久亚洲av无码专区桃色| 久久午夜无码鲁丝片直播午夜精品| 亚洲国产精品自拍成人| 亚洲精品色婷婷在线影院| 四虎精品视频| 加勒比一本大道大香蕉| 免费a级毛片又大又粗又黑| 婷婷五月综合丁香在线| 亚洲AⅤ樱花无码| 大屁股流白浆一区二区三区 | 国产一区二区三区久久悠悠色av| 亚洲午夜精品a片久久www慈禧| 精品中文字幕制服中文| av免费在线播放观看| 国产精品av在线| 亚洲一区欧美二区| 国产精品亚洲av无人区二区| 亚洲小说区图片区色综合网| 国产精品亚洲成在人线|