Hoje, o editor explicará a você o conhecimento relevante sobre a função getline.
Índice
一.cin.getline(char* s, streamsize n, char delim)
二.getline(istream& is, string& str, char delim)
A função getline e cin são complementares.
Comparado com cin, a vantagem de getline é que você pode inserir espaços ao inserir strings . E cin terminará automaticamente a entrada ao entrar em um espaço. Isso é muito semelhante ao scanf e obtém funções na linguagem c.
一.cin.getline(char* s, streamsize n, char delim)
O arquivo de cabeçalho necessário para esta função é <iostream>.
Pode-se entender que getline é uma função da classe cin neste momento, e o namespace em que está é std, portanto, ao inserir, deve ser escrito como std::cin.getline().
O parâmetro char* s aqui é a variável de string de entrada, n é o número de caracteres na string de entrada (o enésimo complemento '\0') , delim é a condição de terminação de entrada, ou seja, a entrada é encerrada quando o caractere representado por delim é encontrado.
Exemplo:
char str[10];
cin.getline(str, 7, 'a');
Quando inserimos sdfazsertyg, str irá armazenar sdf porque terminamos quando encontramos a por padrão.
Da mesma forma, quando bcdefghijklm é inserido, str armazenará bcdefg porque estipulamos que apenas 7 caracteres podem ser armazenados e o 7º bit é preenchido com '\0'.
Vale a pena notar que char delim pode ser omitido em uso normal , e o valor padrão da linguagem C++ é '\0' .
二.getline(istream& is, string& str, char delim)
arquivo de cabeçalho: <string>
is é a função de fluxo de entrada padrão, str é o nome da variável usada para armazenar caracteres e delim é o sinal de fim, a função aqui é a mesma de cin.getline().
deve estar ciente é:
getline() é uma função do fluxo de string e só pode ser usada para operações de entrada do tipo string.
cin.getline é uma função do fluxo std, que é usado para operação de entrada do tipo char*.
Em outras palavras, quando você define uma variável do tipo string, você só pode usar getline() para inseri-la.
Quando você define uma variável do tipo char*, ela só pode ser inserida com cin/cin.getline().
A função é semelhante a cin.getline:
Não é fácil de criar, por favor apoie Sanlian se houver algum erro, por favor me corrija