C/C++ 從入門到入門 第二章 2_2 字符, 輸入和輸出
上一把我們學(xué)習(xí)了基本數(shù)據(jù)類型中的整數(shù)類型以及浮點(diǎn)數(shù)類型他們的關(guān)鍵字和限定關(guān)鍵字, 以及他們的表現(xiàn)形式.
這一次我們繼續(xù), 討論字符類型.
存儲(chǔ)方法
首先我們得知道, 字符類型不能直接送到計(jì)算機(jī)中. 畢竟計(jì)算機(jī)沒有52進(jìn)制存儲(chǔ), 否則說(shuō)不定. 如果想要存儲(chǔ), 就一定要以二進(jìn)制的形式存進(jìn)去, 至少要以數(shù)的形式存進(jìn)去.
如何將字符存儲(chǔ)到計(jì)算機(jī)中, 成為了一個(gè)比較頭疼的問(wèn)題. 在經(jīng)歷了眾多科學(xué)家的研究以及相關(guān)標(biāo)準(zhǔn)委員會(huì)的討論之后, 公布了一個(gè)規(guī)則, 這個(gè)規(guī)則表明了什么字符對(duì)應(yīng)到什么數(shù)字上. C 語(yǔ)言和C++常用的轉(zhuǎn)換形式, 稱為 ASCII.
在 ASCII 中, 規(guī)定了 a 這個(gè)字符對(duì)應(yīng)于數(shù)是 97. A 對(duì)應(yīng)65, 字符"0" 對(duì)應(yīng)是48, 等等.
關(guān)鍵字, 表現(xiàn)形式
我們現(xiàn)在, 只討論常規(guī)字符形式, 對(duì)于不常規(guī)的, 比如漢字這種字符形式. 目前不進(jìn)行說(shuō)明. 因?yàn)檫@個(gè)數(shù)據(jù)類型之前并不存在.
字符數(shù)據(jù)類型的關(guān)鍵字是 char是Character 取前四個(gè)字母的結(jié)果.
字符的表現(xiàn)形式是有一對(duì)單引號(hào)(不是雙引號(hào), 不是三個(gè)單引號(hào), 不是三個(gè)雙引號(hào), 也不是1左邊的按鍵反引號(hào))中間包裹著一個(gè)或者多個(gè)字母數(shù)字或其他符號(hào). 例如:
通常, 字符是由一個(gè)字母或符號(hào)或數(shù)字構(gòu)成的. 但是也有一些特殊的情況. 這里說(shuō)明公共的特殊情況, 對(duì)于規(guī)定的特殊情況, 將在具體位置進(jìn)行具體說(shuō)明.
轉(zhuǎn)義符號(hào)
轉(zhuǎn)義, 即改變?cè)瓉?lái)的含義. 正式介紹之前, 先來(lái)個(gè)引例嘗嘗鮮.
初中時(shí)代可能背過(guò) 陋室銘. 里面有一句:
無(wú)絲竹之亂耳, 無(wú)案牘之勞形
此外, 鄒忌諷齊王納諫里面也有這樣的內(nèi)容:
吾妻之美我者, 私我也.
可能老師會(huì)問(wèn), 或者解釋, 之的含義: 助詞, 本身無(wú)意義, 用在句子中, 取消句子的獨(dú)立性.
比如說(shuō): 吾妻之美我者, 私我也, 把之和相關(guān)的詞語(yǔ)去掉, 就成了吾妻美我, 這句話很好理解, 就是我的妻子稱贊我. 話說(shuō)完了. 加了之以后, "吾妻之美我者" 話就是沒說(shuō)完. 你聽了, 就有一種"這件事情的起因...." 對(duì)方不說(shuō)了的那種感覺. 三天三夜睡不著覺. 所以, 之在此處起到了取消句子獨(dú)立性的作用.
了解以上內(nèi)容以后, 我們介紹轉(zhuǎn)義符號(hào). 轉(zhuǎn)義符號(hào)是回車鍵旁邊的按鍵(上下左右各位自己看), 是反斜線 "\", 在字符開頭出現(xiàn), 轉(zhuǎn)換了此符號(hào)后面跟著的那個(gè)字母符號(hào)的本來(lái)含義. 整體的字符, 我稱其為轉(zhuǎn)義字符
比如:
此為轉(zhuǎn)義字符的含義. 下面是幾個(gè)比較常見的轉(zhuǎn)義字符:
來(lái)自博客園 小 天:
在Windows中:
'\r' 回車,回到當(dāng)前行的行首,而不會(huì)換到下一行,如果接著輸出的話,本行以前的內(nèi)容會(huì)被逐一覆蓋;
'\n' 換行,換到當(dāng)前位置的下一行,而不會(huì)回到行首;
Unix系統(tǒng)里,每行結(jié)尾只有“<換行>”,即"\n";Windows系統(tǒng)里面,每行結(jié)尾是“<回車><換行>”,即“\r\n”;Mac系統(tǒng)里,每行結(jié)尾是“<回車>”,即"\r";。一個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會(huì)變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會(huì)多出一個(gè)^M符號(hào)。
輸入和輸出
C++ 風(fēng)格的之前說(shuō)過(guò), 此處不在贅述, cin 和 cout 的操作方式十分相似, 注意符號(hào)朝向.
printf和scanf 函數(shù)的第一個(gè)參數(shù). 是格式說(shuō)明符, 程序運(yùn)行以后, 輸入格式和輸出格式嚴(yán)格按照說(shuō)明符執(zhí)行. 里面留有若干個(gè)坑位. 用 "%*" 表示. ?坑位專業(yè)術(shù)語(yǔ)叫做格式控制符. 第二個(gè)參數(shù), printf()是坑位要填的值. 對(duì)于scanf()來(lái)說(shuō), 目前理解為這個(gè)坑位對(duì)應(yīng)的變量, 但是注意, scanf() 中, 如果需要輸入給變量, 必須要在變量的前面加"&" 符號(hào), 稱為取地址. 如下:
下面是幾個(gè)常見的格式控制符.
下面的簡(jiǎn)單示例展示了輸入兩個(gè)變量,然后算相加結(jié)果.