999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言中字符數據的輸入與輸出問題解析

2015-02-04 09:33:23黃述杰
電子技術與軟件工程 2014年22期
關鍵詞:單片機

隨著單片機技術的飛速發展C語言逐步成為單片機編程的重要語言,C 語言程序設計課程不僅是高校計算機專業必修課,也成為電子相關專業的一門重要的專業基礎課程,在學習過程中C語言字符數據的輸入與輸出是教學的難點與重點之一,也是學生容易出錯的知識點。通過教學實例重點分析C語言字符數據輸入與輸出易出錯原因,提出解決辦法,使教學更具針對性,有效提高課堂教學質量。

【關鍵詞】單片機 C語言 字符數據 輸入 輸出

C 語言是一種通用、靈活、結構化的計算機高級語言,能實現匯編語言的大部分功能,直接對硬件進行訪問,用C語言編寫的程序,其生成的目標代碼質量高、運行效率高,故而在單片機編程中被廣泛應用,因此C語言程序設計課程不僅是高校計算機專業必修課,也成為電子相關專業的一門重要的專業基礎課程。C 語言學習中字符數據的定義分為單字符和多字符兩類,而具體應用必須與數組結合,對初學者的學習造成困難,特別是字符型數據的輸入與輸出問題較多,是教學的難點與重點。通過教學實例重點分析C語言字符數據輸入與輸出易出錯原因,解決C 語言中學習中字符型數據輸入與輸出過程中常見的問題。

1 C語言字符數據的基本概念

1.1 字符常量和字符變量

C 語言有豐富的數據類型,包括基本類型、構造類型、指針類型和空類型,其中基本類型中包含有字符型數據。字符型數據分常量和變量,字符常量是由單引號括起來的ASCII字符,如a。字符變量必須先定義后使用,如char c1;即定義了一個字符變量c1。字符型變量可以用來存放字符常量,且它只能存放一個字符,如c1=a;。

1.2 字符串常量

C 語言中,字符串常量是由一對雙引號” ” 引起來的字符序列,如”Intel”、“The C Program Language ”。C 語言中字符串一一位數組的形式存放在內存中,因此A和“A”所表達的意義不同,‘A是單字符常量,在內存中只占1個字節,存放字符A的ASCII碼,“A”是字符串常量,在內存中共占2個字節,其中一個字節存放A字符的ASCII碼,另一個字節自動存放字符串結束標記“\0” 。

1.3 字符數組

C 語言中只有字符串常量而沒有字符串變量,字符串的存取操作必需借助字符數組來實現,而不能以變量的形式直接進行存取,存放一個字符串需要先定義一個字符型數組,而后將字符串中的字符逐個作為字符數組的數組元素進行操作。字符數組中一個元素只能存放一個字符,如 char a:表示定義了一個一維字符數組a,可存放5個字符,或存放最大長度為4的1個字符串(最后一個字符是字符串結束符‘\0)。字符數組元素的引用通常采用循環結構實現對數組元素的逐個操作。字符數組的初始化分為逐個字符給數組元素賦值和用字符串常量給字符數組初始化兩種形式,由于逐個字符給數組元素賦值操作繁瑣,實際編程中常用字符串常量給字符數組初始化。

2 字符數據的輸入與輸出

C語言提供了字符數據的輸入與輸出除了C語言提供的常用scanf()函數和printf()函數進行輸入與輸出操作,還提供了專用的字符輸入函數getchar()和字符輸出函數putchar()以及字符串輸入函數gets()和字符串輸出函數puts()。

2.1 字符數據的輸入

2.1.1 scanf 函數

scanf 函數的作用是輸入若干個任意類型的數據,是一種格式輸入函數,利用scanf函數給字符變量賦值應使用格式說明“%c”即可實現字符輸入。用 scanf 函數輸入其他類型的數據時,數據間可以用空格來分隔,而用回車表示輸入結束,但用“%c”格式輸入字符時,空格和“轉義字符”都會作為有效字符輸入,因此使用時容易出錯。例如:scanf“(%c%c%c”,&c1,&c2,&c3);若要將字符a、b、c分別賦給變量c1、c2、c3,正確的輸入方法是“abc”,如果輸入“a空格b空格 c”,則c1=a,c2=空格,c3=b,將產生錯誤。在連續使用兩個及以上scanf 函數輸入字符數據時最容易出現問題,有下列程序:

printf("輸入兩個整數:"); scanf("%d%d",&a,&b);

printf("輸入兩個字符:"); scanf("%c%c",&c1,&c2);

運行程序輸入“5 空格8 HE”,結果是:a=5,b=8,c1=\n,c2=H,將產生錯誤,出現這種情況的原因是輸入的第一個回車表示輸入結束,但該回車被下一個scanf函數的第一個變量c1接收而成為換行符\n,而字符H賦給了變量c2,輸入的字符E未被任何變量接收。解決此問題的辦法是在第二個scanf函數的格式控制部分第一個“%c”前加一個空格,這樣在輸入時第一個回車就不會被變量c1接收了,問題得到解決。

2.1.2 getchar 函數

getchar 函數的作用是從終端(通常是鍵盤)輸入一個字符,其函數值就是從鍵盤輸入的字符,可將函數值賦給字符變量,如:char c1;c1=getchar();程序運行到getchar函數時,等待用戶從鍵盤輸入字符,在鍵盤上輸入“a”,則c1=a。若是兩個變量輸入,程序如下:char c1,c2;c1=getchar();c2=getchar();想得到 c 1 = a ,c 2 = b ,程序運行后輸入‘a ‘后輸入就會結束,第二個字符b‘無法輸入,而此時 c1=a,c2=\n。正確的輸入方法是在鍵盤上輸入“ab”,此時c1=a,c2=b。由此可以得出,在使用getchar進行字符輸入時,按回車鍵表示輸入結束,但同時按回車鍵也產生一個轉義字符\n,這個字符會被后面的 getchar 函數接收,因此利用連續多個getchar ()函數給多個字符變量賦值時應注意只在最后一個字符后面按回車鍵,其它字符連續輸入,字符間不要添加任何符號,否則會產生錯誤。endprint

2.1.3 gets()函數

gets()函數的作用是從終端輸入一個字符串到字符數組中。如:char str1[13];gets(str);從鍵盤輸入“How are you? ”,則數組 str1 的值為字符串“How are you?”。輸入時以回車表示輸入結束,這與 scanf 函數一致,但需要注意的是利用gets 函數輸入字符串時,輸入結束時所按的回車鍵會被轉化為字符串結束標志\0,而利用 scanf 函數輸入字符串時回車不會被轉化為\ 0 。

2.2 字符數據的輸出

2.2.1 printf()函數

printf()函數的作用是輸出若干個任意類型的數據,對不同類型的數據用不同的格式字符。d格式符以十進制整數形式輸出、x格式符以十六進制數形式輸出整數、c格式符以單個字符形式輸出、s格式符以字符串形式輸出、f格式符以小數形式輸出實數。printf()函數輸出時還可以在符號前面以m.n的形式控制數據顯示的列數和精度。

2.2.2 putchar()函數

putchar() 函數的作用是向終端輸出一個字符,字符內容可以是單字符常量、字符變量、ASCII碼和轉義字符。如:putchar (‘h)、putchar(c1)、putchar (65)、putchar (‘\n)將分別輸出單字符h、字符變量c1、字符A和換行符。

2.2.3 puts() 函數

p u t s 函數的作用是將一個字符串(以\ 0 結束的字符序列)輸出到終端,在輸出時將字符串結束標志\ 0 轉換成\ n ,即輸出完字符串后換行,而用 printf 函數的“%s”格式輸出字符串時不會將字符串結束標志\ 0 轉換成\ n ,如果需要換行必須書寫語句 printf (“\n”)來實現。

3 結束語

在C語言程序設計中數據的輸入與輸出是最為常用的操作,而字符數據因其自身的特點在輸入輸出方面又具有一定的特殊性,一般情況下,scanf()和printf()、getchar()和putchar()、gets()和puts()配對使用,在學習過程中必須多實踐,多練習,在實際編程過程中掌握有關字符數據輸入與輸出的方法,進而提高編程能力,掌握C語言程序設計的技巧。

參考文獻

[1]譚浩強.C程序設計試題匯編[M].北京:清華大學出版社,1998.

[2]葛素娟,胡建宏.C語言程序設計教程[M].北京:機械工業出版社,2013:41-47.

[3]崔琦.淺議C語言中字符數據的輸入與輸出[J].中國科技信息,2009(14):118.

作者簡介

黃述杰(1980-),男,碩士學位。現為武威職業學院講師。研究方向為軟件工程。

作者單位

武威職業學院 甘肅省武威市 733000endprint

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 蜜桃臀无码内射一区二区三区| 在线毛片网站| 久久免费成人| 中文字幕自拍偷拍| 一区二区在线视频免费观看| 欧美精品成人一区二区在线观看| 天堂成人在线| 日本精品αv中文字幕| 啦啦啦网站在线观看a毛片| www.91在线播放| 青青青视频蜜桃一区二区| 日韩精品成人在线| 国产欧美专区在线观看| 99精品高清在线播放| 色综合久久88| 国产自产视频一区二区三区| 亚洲AV人人澡人人双人| a欧美在线| 97久久超碰极品视觉盛宴| 国产午夜无码片在线观看网站| 在线无码九区| 亚洲伦理一区二区| 亚洲国产中文精品va在线播放| 亚洲欧美激情另类| 国内精品伊人久久久久7777人| 日韩大乳视频中文字幕| 亚洲AV无码久久精品色欲 | 中文字幕在线免费看| 全色黄大色大片免费久久老太| 一区二区自拍| 国产免费久久精品99re丫丫一| 国产视频一二三区| 国产精品免费福利久久播放| 99成人在线观看| 色精品视频| 亚洲无码电影| 免费看一级毛片波多结衣| 亚洲成人播放| 欧美不卡在线视频| 色婷婷在线播放| 超清无码一区二区三区| 人妖无码第一页| 国产嫩草在线观看| 国产日韩精品欧美一区灰| 久热这里只有精品6| 日本一区中文字幕最新在线| 伊人狠狠丁香婷婷综合色| 456亚洲人成高清在线| 久久国产精品影院| 亚洲三级影院| 欧美在线视频不卡第一页| 国产毛片基地| 欧美精品1区| 日韩在线网址| 99国产精品国产高清一区二区| 另类专区亚洲| 天堂在线www网亚洲| 日韩天堂视频| 久久毛片基地| 日韩久草视频| 中文字幕欧美日韩高清| 538国产视频| 亚洲成人精品久久| 亚洲天堂免费在线视频| 国产拍在线| 国产精品原创不卡在线| 911亚洲精品| 国产精品尹人在线观看| 国产第一页免费浮力影院| 天天色天天综合网| 67194在线午夜亚洲| 日韩欧美国产中文| 色成人综合| 国产无码网站在线观看| 无码粉嫩虎白一线天在线观看| 国产成人精品2021欧美日韩| 国产高清在线丝袜精品一区| 国产女人在线观看| 亚洲综合婷婷激情| 91麻豆精品视频| 97人人模人人爽人人喊小说| 国产乱子伦精品视频|