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);//向普通數組中輸入一行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章