getline()

weixin_39354151發表於2020-10-20

getline()的原型:

標頭檔案:#include
istream& getline ( istream &is , string &str , char delim );
其中,istream &is 表示一個輸入流,譬如cin;
string&str表示把從輸入流讀入的字串存放在這個字串中(可以自己隨便命名,str什麼的都可以);
char delim表示遇到這個字元停止讀入,在不設定的情況下系統預設該字元為’\n’,也就是回車換行符(遇到回車停止讀入)。

程式原始碼中使用了這樣的語句:
    ifstream fin(fname);
    int a,b,c;
    string s;
    getline(fin, s);
    istringstream ss(s);
    ss >> a>>b>>c;
將讀入的一行中的三個整數儲存到了a, b, c中。
查了一下相關文件:C++引入了ostringstream、istringstream、stringstream這三個類,要使用他們建立物件就必須包含這個標頭檔案。
istringstream類用於執行C++風格的串流的輸入操作。
ostringstream類用於執行C風格的串流的輸出操作。
strstream類同時可以支援C風格的串流的輸入輸出操作。
istringstream的建構函式原形如下:
istringstream::istringstream(string str);
它的作用是從string物件str中讀取字元。
    #include  
    #include        //istringstream 必須包含這個標頭檔案
    #include  
    using namespace std;  
    int main()  
    {  
        string str=“i am a boy”;  
        istringstream is(str);  
        string s;  
        while(is>>s)  
        {  
            cout<<s<<endl;  
        }  
          
    }
輸出是:
i
am
a
boy