1. 程式人生 > >c++中字符輸入函數getline、cin.getline區分

c++中字符輸入函數getline、cin.getline區分

不能 ng- 設置 alt pos art 結束 out 兩個

1、cin>>s; s能夠是:string s、char s[];

這個是ostream中的函數。遇到‘ ’(空格) , ‘\n‘(換行),就會自己主動結束,因此假設用cin讀取字符串,那麽這個字符串中不能含有空格和換行。

cin由於不識別空格和換行,因此假設在輸入字符串的時候,在字符開始處輸入了空格或換行,沒有不論什麽影響。

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;


int main()
{
    string s;
    int n;
    while(cin>>s)
    {
        cout<<s<<endl;
    }
}

技術分享

2、getline(cin , s , ‘\n‘) , s僅僅能是 string s

getline屬於string類的字符讀取函數。這個函數的第三個參數能夠不寫(getling(cin , s))。第三個參數默認是‘\0‘,這樣的情況下假設要結束一個字符串輸入。對於有些編譯器(VC , VS), 必須得連續輸入兩個換行。

對於getline(cin , s , ‘z‘) ,能識別空格和換行

對於getline僅僅要截止字符(第三個參數)設置得當。能讀取多行

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;


int main()
{
    string s;
    int n;
    while(getline(cin , s , ‘z‘))
    {
        cout<<s<<endl;
    }
}

技術分享

3、cin.getline(s , 100 , ‘/n‘) 。 僅僅能是 char s[];

cin.getline屬於ostream 。 和getline類似,僅僅是僅僅能對char s[]類型進行讀取。除這點外,其它和getline都同樣。


??

c++中字符輸入函數getline、cin.getline區分