1. 程式人生 > >C++中讀取字元、字串的函式

C++中讀取字元、字串的函式

iostream流:cin、cin.get()、cin.getline()       string流:getline()

cin:配合輸入操作符">>"使用。而操作符">>"預設會跳過空格、製表符、tab、回車符等分隔符,實際上這些空白分隔符都是存在於緩衝區中的。可以通過std::noskipws操縱符讓輸入操作符不跳過空白分隔符,std::skipws用來設定忽略空白分隔符。例如:

std::cin>>std::noskipws>>n; //不忽略空白字元
std::cin>>std::skipws>>n; //忽略空白字元

重要:當cin>>從緩衝區中讀取資料時,若緩衝區中第一個字元是空格、tab或換行這些分隔符時,cin>>會將其忽略並清除,繼續讀取下一個字元,若緩衝區為空,則繼續等待。但是如果讀取成功,字元後面的分隔符保留在緩衝區,cin>>不做處理。

cin.get(void):讀取一個字元並返回,包括各種空白字元。剩下的字元和換行符均保留在快取區

cin.get(ch):讀取一個字元給ch,與cin.get(void)相同。 

cin.get(char *str,int ArSzie):讀取給定數的字元(ArSize-1),最後要放’\0’。剩下的字元和換行符均保留在快取區

cin.get(char *str,int ArSzie, char delim):遇到給定字元”delim”結束。“delim”和剩下的字元均保留在快取區

 

cin.getline(char *str,int ArSzie): 讀取給定個數的字元(ArSize-1),最後一個要放’\0’。剩下的字元和換行符均丟棄

cin.getline(char *str,int ArSzie,char delim): 遇到給定字元”delim”結束。將”delim”和剩下的字元均丟棄

getline(cin,string &str): 遇換行符結束。剩下的字元和換行符均丟棄

getline(cin,string &str, char delim): 遇”delim”結束。將”delim”和剩下的字元均丟棄