李召妮
摘要:C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器以及產(chǎn)生少量的機(jī)器碼的編程語言。C語言的大部分內(nèi)容對(duì)初學(xué)者來說是比較簡(jiǎn)單易學(xué)的,但有些部分內(nèi)容比較難,比如:指針、文件操作等?;诖?,結(jié)合教學(xué)實(shí)踐,該文提出了使用UE工具來輔助教學(xué),并通過舉例的方式說明如何使用UE進(jìn)行教學(xué)工作。這樣做有助于學(xué)習(xí)者理解和學(xué)習(xí)字符編碼、文件操作等較難的內(nèi)容。
關(guān)鍵詞:C語言;教學(xué);編輯軟件;UE;文件操作
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)06-0097-03
1引言
C語言是一門非常重要的語言,應(yīng)用領(lǐng)域非常廣泛,學(xué)好C語言對(duì)于學(xué)生的發(fā)展有非常重要的作用。在學(xué)習(xí)C語言的時(shí)候有部分內(nèi)容對(duì)于初學(xué)者還是比較難于理解的,這時(shí)候借助一些工具來配合教學(xué)能夠起到事半功倍的效果。文本編輯軟件UE是一款非常優(yōu)秀的編輯軟件,是很多專業(yè)開發(fā)人員的必備工具,使用這款軟件既可以幫助C語言教學(xué),也可以讓學(xué)生熟練使用UE,提高學(xué)生的競(jìng)爭(zhēng)力。
2 C語言是歷久彌新的重要語言
根據(jù)CSDN網(wǎng)站報(bào)道,TIOBE公布了2018年1月編程語言指數(shù)排行榜,排名前三的依然是Java、C、C++。編程語言屆的老前輩C是2017年中TIOBE指數(shù)增長(zhǎng)最快的,榮登2017年度編程語言。這是C語言第二次榮登年度編程語言,第一次為2008年。
“年度編程語言”是授予在一年中比例增長(zhǎng)量最多的編程語言(詳情如表1)。在2017年中,C語言的比率增長(zhǎng)量1.69%,排在第一位。
從上面的報(bào)道我們可以看到,C語言依然在編程語言中占據(jù)非常重要的作用。下面我們就介紹一下C語言。
2.1 C語言是一門簡(jiǎn)單易學(xué)的語言
C語言是一門高級(jí)語言。高級(jí)語言是一種接近人類使用習(xí)慣的一種語言,其語法和結(jié)構(gòu)更類似普通英文,且由于遠(yuǎn)離對(duì)硬件的直接操作,使得一般人經(jīng)過學(xué)習(xí)之后都可以編程,具有易學(xué)習(xí)、易理解、通用性強(qiáng)的特點(diǎn)。C語言只有三種結(jié)構(gòu):順序、循環(huán)、選擇。C語言有37個(gè)關(guān)鍵字,34種運(yùn)算符,其中常用的只有十幾種。數(shù)據(jù)類型有整形、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。所以任何人只要花費(fèi)數(shù)周的時(shí)間就可以學(xué)會(huì)C語言。
2.2 C語言是一門易學(xué)但不易精通的語言
雖然C語言是一門容易上手的語言,但是要學(xué)好C語言并非易事。對(duì)于初學(xué)者來說字符和其編碼之間的關(guān)系,轉(zhuǎn)義字符、指針、結(jié)構(gòu)體、文件讀寫等都不太容易理解和掌握。對(duì)于需要熟練使用C語言的人來說,需要掌握的東西就更多了。C語言主要應(yīng)用在系統(tǒng)軟件和嵌入式開發(fā)領(lǐng)域,需要人們掌握操作系統(tǒng)、硬件知識(shí)等很多內(nèi)容。
3編輯軟件UE簡(jiǎn)介
UE是UltraEdit的簡(jiǎn)稱,它是一套功能強(qiáng)大的文本編輯器,可以編輯文字、Hex、ASCII碼,支持ANSI,Unicode編碼。UE是很多軟件開發(fā)人員必備的工具之一。掌握一些重要的工具,對(duì)于學(xué)生學(xué)習(xí)和今后的工作都大有裨益。
4編輯軟件UE在C語言教學(xué)中的應(yīng)用
4.1 UE作為C語言的編輯器
對(duì)于初學(xué)C語言的學(xué)生來說,不能過于依賴VC這樣的集成開發(fā)平臺(tái)。首先,VC等平臺(tái)很多在輸入程序的時(shí)候會(huì)有提示,所以函數(shù)之類都不需要記憶全名,只需要記憶首字母就可以,輸入首字母或前面幾個(gè)字母就可以枚舉相應(yīng)的函數(shù)集合。這些功能對(duì)于軟件開發(fā)人員來說可以提高工作效率,但是對(duì)于初學(xué)者來說,不利于深刻記憶和理解c語言的內(nèi)容。同時(shí)在VC平臺(tái)上,程序編寫結(jié)束,我們可以通過編譯修改語法錯(cuò)誤,通過調(diào)試修改邏輯錯(cuò)誤。但是對(duì)于初學(xué)者,最好在寫完程序后通過仔細(xì)閱讀自己寫的程序,檢查語法錯(cuò)誤和邏輯錯(cuò)誤,這個(gè)過程對(duì)初學(xué)者快速熟悉和理解C語言大有好處。
UE是一款非常好的文本編輯器,使用簡(jiǎn)單,可以進(jìn)行良好的排版,非常適合學(xué)生用來編寫C語言程序。UE內(nèi)置了C、C++、java、C#等語言的格式,選擇對(duì)應(yīng)的格式可以把保留字等內(nèi)容高亮顯示,方便閱讀。
4.2用UE幫助學(xué)生理解字符編碼之間的關(guān)系
在學(xué)習(xí)C語言的時(shí)候要學(xué)習(xí)字符變量,這時(shí)候就要給學(xué)生講解ASCII編碼。在講解字符編碼的時(shí)候我們常用一張“常用字符與ASCII碼對(duì)照表”,然后用這張表給學(xué)生講解字符和編碼之間的對(duì)應(yīng)關(guān)系。老師用很多的口舌講解,但是學(xué)生并不是完全理解,或者說并沒有真正地明白。因?yàn)檫@個(gè)看似簡(jiǎn)單的問題實(shí)際上涉及兩個(gè)過程:一是字符在電腦中的存儲(chǔ)就是字符編碼,二是在電腦中存儲(chǔ)的編碼如何顯示成對(duì)應(yīng)的字符。學(xué)生會(huì)產(chǎn)生疑惑特別是對(duì)于后者,因?yàn)镃語言一般都是在大一或大二開設(shè)的基礎(chǔ)專業(yè)課,這時(shí)候?qū)W生對(duì)于電腦的基本原理還是知之甚少,所以有疑惑不足為奇。以字符A為例,字符A對(duì)應(yīng)的編碼也就是在電腦中的存儲(chǔ)內(nèi)容是0×41,對(duì)于在電腦中存儲(chǔ)的0×41能夠顯示為A,這是由我們對(duì)應(yīng)的編輯軟件實(shí)現(xiàn)的。但是我們用語言來描述還是太抽象,這時(shí)候我們就可以用UE的文本和16進(jìn)制的轉(zhuǎn)換功能來演示。
4.3使用UE幫助學(xué)生理解文件讀寫
4.3.1幫助判斷文件是否UNICODE編碼
對(duì)于文本文件來說主要的有兩種編碼方式,一種是ASCII,一種是UNICODE。不同的編碼方式,對(duì)應(yīng)不同的處理方式,例如讀取一個(gè)字符,ASCII編碼使用函數(shù)fgetc0,對(duì)于UNICODE編碼使用函數(shù)fgetwc(),所以在教授文件讀寫的時(shí)候必須對(duì)編碼方式進(jìn)行介紹。判斷一個(gè)文本文件是否是UNICODE編碼方式就是查看文件的前兩個(gè)字節(jié)是否是Oxfeff,如果是則是UNICODE編碼,否則是ASCII編碼。這時(shí)候我們就可以利用UE來給學(xué)生演示ASCII編碼和UNICODE編碼的文件頭的區(qū)別,也可以進(jìn)一步講解兩種編碼方式的不同。
4.3.2幫助讀寫文件
對(duì)文件進(jìn)行操作的目的是要對(duì)文件的內(nèi)容做某些處理,這時(shí)候經(jīng)??赡軙?huì)做的一個(gè)操作就是要判斷內(nèi)容是否是某個(gè)字符,比如判斷if(李==str[i]),這種方式是有問題的,寫在程序里的李因?yàn)榫幋a的關(guān)系不一定和文件里面的李是同一個(gè)碼值,這樣可能導(dǎo)致程序不能按照預(yù)期來處理。正確的做法是在文件中找到這個(gè)‘李字,然后切到16進(jìn)制格式查看這個(gè)字的編碼,然后改寫成if(0x674e==str[i]),這樣就不會(huì)有問題。做這些事情就需要用到UE這個(gè)工具。針對(duì)此種情況,首先在UE中打開對(duì)應(yīng)的文本,然后找到對(duì)應(yīng)的字符,然后切換到16進(jìn)制顯示,獲取對(duì)應(yīng)的字符碼值。
4.3.3驗(yàn)證文件讀寫是否正確
讀寫文件的時(shí)候一個(gè)重要的事情就是要判斷讀寫的內(nèi)容是否正確,特別是在使用了fseek()函數(shù)之后,更是要驗(yàn)證讀取的內(nèi)容是否符合要求。因此,在調(diào)試程序的時(shí)候把讀取的內(nèi)容通過調(diào)試窗口的watch進(jìn)行查看,然后在UE中可以跳轉(zhuǎn)到對(duì)應(yīng)的位置查看文本中的內(nèi)容和調(diào)試窗口的內(nèi)容是否一致。如果內(nèi)容比較多,我們還可以把watch中的內(nèi)容復(fù)制到一個(gè)新文件中,然后把原文件中對(duì)應(yīng)的內(nèi)容復(fù)制到另外一個(gè)新文件中,然后用UE的文件比較功能進(jìn)行比較驗(yàn)證兩個(gè)文件是否一樣。
在文件處理的時(shí)候還有一個(gè)經(jīng)常會(huì)做的操作就是讀取原文件并處理之后會(huì)將處理后的結(jié)果寫人到一個(gè)新的文件,在全部處理完之后將一些內(nèi)容寫人到文件頭的位置上。比如在做詞典開發(fā)的時(shí)候需要把每個(gè)詞條的mp3發(fā)音整合成一個(gè)文件,然后在文件頭的地方寫入詞條總數(shù)和每個(gè)詞條發(fā)音的起始位置,這樣在程序中就可以快速地獲取詞條的發(fā)音,提高運(yùn)行效率。程序處理完之后,我們需要通過UE工具來驗(yàn)證我們寫入頭文件的內(nèi)容是否是我們想要的。
圖中前四個(gè)字節(jié)表示詞條總數(shù)共9條,后面字節(jié)表示詞條發(fā)音的起始位置,每個(gè)位置用四個(gè)字節(jié)表示。
5結(jié)束語
知易行難,具體來說就是認(rèn)識(shí)事物的道理容易,實(shí)行起來較難。UE工具看起來比較簡(jiǎn)單,但是要精通使用并通過它解決實(shí)際問題對(duì)于我們來說并不容易。恰當(dāng)?shù)厥褂肬E工具,可以幫助學(xué)生練習(xí)c語言程序的編寫,理解C語言的內(nèi)容和操作,調(diào)試程序是否正確,對(duì)學(xué)生學(xué)習(xí)C語言很有幫助。在教學(xué)中,選擇恰當(dāng)?shù)能浖ぞ呖梢蕴岣邔W(xué)生的學(xué)習(xí)能力,激發(fā)學(xué)生的學(xué)習(xí)興趣。