Функция ввода символов C ++ getline, различие cin.getline

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 может быть только строкой 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.



Опубликовано 190 оригинальных статей · 19 похвал · 200 000+ просмотров

рекомендация

отblog.csdn.net/zengchenacmer/article/details/38079529