¡Explicación detallada de la entrada de cadena C ++!

Varios métodos comunes para ingresar cadenas en C ++ son los siguientes:

cin 、 cin.get () 、 cin.getline () 、 getline () 、 gets () 、 getchar ()

 

1. cin >>

Uso 1: El uso más común y básico, ingrese un número: 

#include <la iostream>
 el uso de  espacio de nombres STD;
 int main () 
{ 
int A, B; 
CIN >> A >> B; 
COUT << A + B << endl; 
} 
de entrada: 2 [ENTER] 3 [ENTER ] 
Salida: 5

 Uso 2: acepta una cadena de caracteres y finaliza cuando encuentra "espacio", "Tabulador" y "retorno de carro"

#include <la iostream>
 el uso de  espacio de nombres STD;
 int main () 
{ 
Char A [ 20 es ]; 
CIN >> A; 
COUT << A << endl; 
} 
de entrada: jkljkljkl 
de salida: jkljkljkl 
de entrada: jkljkl jkljkl // espacio caso Fin, por lo que no puede ingresar varias palabras 
Salida: jkljkl

 

2. cin.get ()

Uso uno: cin.get (nombre de la variable de caracteres) se puede usar para recibir caracteres

# include <iostream la>
 el uso de  espacio de nombres de enfermedades de transmisión sexual; 
int main () 
{ 
Char CH; 
CH . = CIN GET (); // o cin.get (CH); sólo tienen un carácter 
COUT CH << << endl; 
} 
Entrada: jljkljkl 
Salida: j

Uso dos: cin.get (nombre de matriz de caracteres, el número de caracteres recibidos) se utiliza para recibir una línea de cadenas, puede recibir espacios

#include <iostream>
 usando  namespace std;
 int main () 
{ 
char a [ 20 ]; 
cin. get (a, 20 ); // Algunos similares a getline. Puede ingresar varias palabras, separadas por espacios. 
<< << A COUT endl; 
} 
de entrada: jkl jkl jkl 
salida: jkl jkl jkl 
de entrada: abcdeabcdeabcdeabcdeabcde (entrada 25 caracteres) 
de salida: abcdeabcdeabcdeabcd (19 caracteres recibir 1 ' \ 0 ' )

Uso tres: cin.get (sin parámetros) sin parámetros se utiliza principalmente para descartar los caracteres no deseados en la secuencia de entrada, o descartar el retorno de carro para compensar las deficiencias de cin.get (nombre de matriz de caracteres, número de caracteres recibidos).

#include <iostream>
 usando el  espacio de nombres std; 
 
int main () 
{ 
     
    char arr [ 10 ]; 
    cin. get (arr, 10 ); 
    cin. get (); // solía comer retorno de carro, equivalente a getchar (); 
    cout << arr << endl; 
    cin. get (arr, 5 ); 
    cout << arr << endl; 
    sistema ( " pausa " );
     return  0 ; 
} 
 
input abcdefghi 
output abcdefghi 
input abcde 
output abcd 

 
#include<iostream>
 usando el  espacio de nombres std; 
 
int main () 
{ 
     
    char arr [ 10 ]; 
    cin. get (arr, 10 );
     // cin.get (); // solía comer retorno de carro, equivalente a getchar (); Ahora comente esta línea e intente 
    cout << arr << endl; 
    cin. Get (arr, 5 ); 
    cout << arr << endl; 
    system ( " pause " );
     return  0 ; 
} 
 
input abcdefghi 
output abcdefghi

 

3.cin.getline ()

cin.getline () // acepta una cadena, puede recibir espacios y resultados

#include <iostream>
 usando  namespace std;
 int main () 
{ 
char m [ 20 ]; 
cin.getline (m, 5 ); // básicamente lo mismo que arriba. 
<< << m COUT endl; 
} 
Entrada: jkljkljkl 
Salida: jklj 
recibir caracteres a 5 m, donde la última es ' \ 0 ' , por lo que sólo ver la salida de cuatro caracteres; 
si el 5 al 20: 
entrada: jkljkljkl 
salida: jkljkljkl 
entrada: JKLF fjlsjf fjsdklf 
salida: JKLF fjlsjf fjsdklf 
// extensión:
 // cin.getline () en realidad tiene tres parámetros, cin.getline (acepta una cadena a m, el número de recepción 5, el extremo Personaje)
 //Cuando se omite el tercer parámetro, el sistema por defecto es '\ 0' que es '/ n'.
// Si cambia cin.getline () en el ejemplo a cin.getline (m, 5, 'a'); cuando ingrese jlkjkljkl, salga jklj, cuando ingrese jkaljkljkl, salga jk 
cuando se use en una matriz multidimensional, también puede con cin.getline (m [I], 20 es ) tal uso: 
#include <la iostream> 
#include < cadena >
 el uso de  espacio de nombres STD; 
int main () 
{ 
Char m [ . 3 ] [ 20 es ];
 para ( int i = 0 ; i < 3 ; i ++ ) 
{ 
cout << " \ nIntroduzca el primero " << i + 1 <<" Cuerda: " << endl; 
cin.getline (m [I], 20 es ); 
} 
COUT << endl;
 para ( int J = 0 ; J < 3. ; J ++ ) 
COUT << " Output m [ " J << << " ] valor: " << m [J] << endl; 
} 
Por favor, introduzca una cadena: 
kskr1 
Por favor, introduzca la segunda cadena: 
kskr2 
Por favor introduzca los caracteres : cadena 
kskr3 
salida m [ 0 valor]: kskr1 
salida m [ . 1] Valor: kskr2 
salida m [ 2 ] valor: kskr3

 

4. getline ()

getline () // acepta una cadena, puede recibir espacios y resultados, debe incluir "#include <string>

# include <iostream la> 
#include < cadena >
 el uso de  espacio de nombres de enfermedades de transmisión sexual; 
principal) ( 
{ 
Cadena STR; 
getline (CIN, STR); 
COUT << STR << endl; 
} 
Entrada: jkljkljkl // VC6 tiene un error, necesidad Entra dos veces. 
Salida: jkljkljkl 
de entrada: jkl jfksldfj jklsjfl 
salida: jkl jfksldfj jklsjfl 
y cin.getline () es similar, pero cin.getline () pertenece corriente istream, y getline () pertenece flujo cadena, dos funciones no son los mismos

 

5. gets ()

gets () // acepta una cadena, puede recibir espacios y resultados, debe incluir "#include <string>

#include <la iostream> 
#include < cadena >
 el uso de  espacio de nombres STD; 
main () 
{ 
Char m [ 20 es ]; 
la gets (m); // no se puede escribir como la obtiene = m (); 
COUT m << << endl; 
} 
Input : jkljkljkl 
salida: jkljkljkl 
entrada: jkl jkl jkl 
salida: jkl jkl jkl 
cin.getline similar () dentro de un ejemplo, se pone () también se puede utilizar en matrices multidimensionales que: 
#include <la iostream> 
#include < cadena >
 el uso de  espacio de nombres STD; 
int main () 
{ 
Charm [ 3 ] [ 20 ];
para ( int i = 0 ; i < 3 ; i ++ ) 
{ 
cout << " \ n 请 输入 第" << i + 1 << " 个 字符串 :" << endl; 
obtiene (m [i]); 
} 
Cout
 << endl;
para ( int j = 0 ; j < 3 ; j ++ ) 
cout << " 输出 m [ " << j << " ] 的 值: "
} 
Por favor, introduzca una cadena: 
kskr1 
Por favor, introduzca la segunda cadena: 
kskr2 
Por favor introduzca cadena: 
kskr3 
de salida m [ 0 kskr1:] los valores 
de salida m [ 1. Valor]: kskr2 
salida m [ 2 valor]: kskr3 
sensación obtiene () y cin.getline () uso es muy similar, pero cin.getline () llena un parámetro más; 
en el presente documento explicar Incidentalmente, para este artículo kskr1 El ejemplo de kskr2, kskr3 también es aplicable a cin >>, porque no se ingresa ningún espacio aquí, si ingresa un espacio, como "ks kr jkl [retorno de carro]", cin habrá recibido 3 cadenas, "Ks, kr, jkl"; 
otro ejemplo es "kskr 1 [retorno de carro] kskr 2 [retorno de carro]", luego recibe "kskr, 1 , kskr"; ¡este no es el resultado que queremos! Y cin.getline () y gets () no producirán este error porque pueden recibir espacios

 

6.getchar ()

getchar () // Aceptar un carácter, debe incluir "#include <string>

#include <la iostream>
 el uso de  espacio de nombres STD;
 int main () 
{ 
Char CH; 
CH = getchar (); // no se puede escribir getchar (CH); 
COUT CH << << endl; 
} 
de entrada: jkljkljkl 
de salida: J 
/ / getchar () es una función del lenguaje C, C ++ también es compatible, pero trata de no usarlo o usarlo menos;

 

Supongo que te gusta

Origin www.cnblogs.com/sqm724/p/12732925.html
Recomendado
Clasificación