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;