1 使用cin輸入字元串的相關問題
1.1 cin 使用空白(空格、制表符和換行符)來定字元串的界
這意味着cin在擷取字元數組輸入時隻讀取一個單詞,在讀取該單詞後,cin将該字元串放到數組中,并自動在結尾添加空字元。這樣,後一個字元串将不會輸入到數組中。
1.2 當輸入字元串可能比目标數組長時,将不能防止例如将包含30個字元的字元串放到20個字元的數組中的情況。
2 面向行的讀取還不是面向單詞
2.1 getline()
getline()讀取一行的輸入,直到到達換行符,并丢棄換行符
它有三個參數:數組名稱、要讀取的字元長度、第三個參數為XXX
如果為20,則函數最多讀取19個字元,餘下的空間用于存儲空字元!!!注意!!!!
2.2 get()
get()有三個參數的版與getline()意思差不多,...,将換行符保留在輸入序列中,不通過一定的手法,get()将不能通過最後的換行符!!!!如此這樣使用:
cin.get(name,size);
cin.get();
cin.get(name2,size2);
2.3 空行和其他問題
當getline()和get()讀取空行時怎麼辦?思考。。。
2.4 對于一個未被初始化的字元串,其内容是随機的,也就有可能出現空字元\0!!!!要先初始化!!!
2.5向string中輸入一行字元
getline(cin,string);//向string中輸入一行
cin.getline(array,size);//向普通數組中輸入一行