研一寒假00 char cin輸入時的問題

2022-07-23 12:03:17 字數 2607 閱讀 8818

#-------------------char----------------#

#include

/*使用鍵盤輸入字元時,cin將鍵盤輸入的m轉換為77,輸出時,cout將77轉換為m;另外c++對字元只用單引號,對字串使用雙引號 */

int main()

#----------------------------float-------------------------------#

#include

int main()

#---------------------------cin輸入時的問題-----------------------------#

#include

int main()

/* 由於cin以使用空白(空格 製表符和換行符)來確定字串的結束位置,這意味著cin在獲取字元陣列輸入的時候只能讀取乙個單詞

因此假如輸入的名字為 alistaire dreeb 那麼cin吧alistaire當作第乙個字串,並儲存在name陣列中,把dreeb放入輸入佇列中,等待

下乙個cin自動將dreeb儲存在陣列dessert中,因此上面的程式只輸入一次,程式便可以執行完畢 */

/* 解決方法:每次讀取一行輸入get()和getline()方法 */

//getline()方法,有兩個引數,第乙個是輸入的字串儲存的陣列名,第二個是要讀取的字元數,如果第二個引數為20,那麼函式最多讀取19個字元

//getline()方法以回車鍵作為換行符來確定輸入結束,但不儲存換行符,而是以空字元\0來替代換行符

cin.getline(name,20);//將輸入的字元儲存到name陣列中,最多讀取19個字元,以回車鍵作為輸入的結束

//get()方法,可以帶引數,也可以不帶,帶引數時候引數和getline()的引數是一樣的,只不過get()方法最後輸入的回車會作為換行符被留著輸入佇列中

//因此如果連續兩次呼叫get()方法,第二次呼叫的get()方法是都不到任何輸入的字元的,因為第乙個get()方法殘留的換行符還被儲存在輸入佇列中,第二個是要讀取的字元數,如果第二個引數為20

//執行到第二個get方法時,則判斷為輸入結束

cin.get(name,20); //可以讀到資料

cin.get(dessert,20); //都不到資料

//解決方法01

cin.get(name,20); //可以讀到資料

cin.get(); //處理第一次get方法殘留在輸入佇列中的換行符

cin.get(dessert,20);//可以讀到資料

//解決方法02

cin.get(name,20).get(); //之所以可以這樣是因為cinget(name,20)返回乙個cin物件,改cin物件隨後去呼叫get方法

cin.get(dessert,20).get();

//連續兩次輸入

cin.get(name,20).get(dessert,20); //可以實現連續兩次輸入

//坑cin>>year; //輸入年之後的回車鍵會生成換行符,並儲存在輸入佇列中,在執行到cin.getline()時,便認為結束輸入,因此在該劇下面加一句

cin.get();//去掉上一句中由回車鍵生成的換行符 也可以這樣;(cin>>year).get();

cin.getline(address,80);

#-------------------------------------陣列&&字串----------------------------#

#include

#include //for strlen()

int main()

; //定義並初始化乙個包含3個整形數的陣列

float hoteltips[5]=; //部分初始化,編譯器會把其餘的元素設定為0

long totals[500]=; //將totals陣列初始化為0

short things=; //也可以不說明陣列元素的個個數,這件事讓編譯器去做

/* 字串(儲存在陣列中) */

char dog[4]=; //不是字串

char cat[4]=; //是字串,字串必須以\0(空字元)結尾,用cout顯示的時候,遇到空字元則停止

char fish="bubbles"; //定義字串的另一種方法,切忽略了陣列元素的個數,並且自動在結尾加上了空字元*****

char shirt_size='s'; //定義字元常量***** 's'只是83的另一種寫法,而"s"是兩個字元(字元s和\0)組成的字串,而且"s"實際上是表示字串所在的記憶體位址

/* strlen()和sizeof()的區別 */

int fish_strlen=strlen(fish); //strlen()是計算出fish這個陣列中有多少個字母,不包括結尾的空字元\0

int fish_sizeof=sizeof(fish); //sizeof()是計算出fish這個陣列的長度:15位元組,以位元組為單位

}2019.02.13  最近在家編輯於家23:28 haijing miss my home

研一寒假05 vector array

vector array 模板類vector vectorvt n elem 建立名為vt的vector物件,它可儲存n elem個型別為typename的元素,其中 n elem 可以省略,n elem可以是變數 要使用vector物件,必須包含vector標頭檔案,另外vector包含在命名空間...

研一的苦惱

接近考試了,又要忙碌地複習了。做乙個研究生也挺麻煩的,既要照顧好課程,還要忙著導師的專案。平時的課挺多的,說輕鬆也輕鬆,說緊張倒也緊張。上課可以專心聽,也可以打個盹就過去了,反正沒有點名提問 作業可以好好做,也可以拼拼湊湊搞的有模有樣交了算了。你可以預習也可以不預習,你可以複習也可以扔在一邊不管了。...

研一的苦惱

接近考試了,又要忙碌地複習了。做乙個研究生也挺麻煩的,既要照顧好課程,還要忙著導師的專案。平時的課挺多的,說輕鬆也輕鬆,說緊張倒也緊張。上課可以專心聽,也可以打個盹就過去了,反正沒有點名提問 作業可以好好做,也可以拼拼湊湊搞的有模有樣交了算了。你可以預習也可以不預習,你可以複習也可以仍在一邊不管了。...