天天看點

C++中字元串輸入

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);//向普通數組中輸入一行

繼續閱讀