Directorio de artículos
Varios métodos comunes para ingresar cadenas en C ++ son los siguientes:
cin 、 cin.get () 、 cin.getline () 、 getline () 、 gets () 、 getchar ()
cin >>
- Ingrese un número
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b; //输入:2[回车]3[回车]
cout << "a + b = " << a + b << endl;//输出:a + b = 5
return 0;
}
- Reciba una cadena de caracteres, finalizará cuando encuentre "espacio", "Tabulador" y "retorno de carro"
#include <iostream>
using namespace std;
int main()
{
char arr[20];
cin >> arr;
cout << "arr: " << arr << endl;
//输入:jkljkl jkljkl
//遇空格结束,所以不能输入多个单词
//输出:jkljkl
return 0;
}
cin.get ()
- cin.get (nombre de variable de carácter) se puede usar para recibir un carácter
#include <iostream>
using namespace std;
int main()
{
char ch;
ch = cin.get();
//cin.get(ch);
cout << "ch = " << ch << endl;
return 0;
}
//输入:jljkljkl
//输出:j
- cin.get (nombre de matriz de caracteres, número de caracteres recibidos) puede usarse para recibir una línea de cadenas, puede recibir espacios y automáticamente recibe un '\ 0'
#include <iostream>
using namespace std;
int main()
{
char str[20] = { 0 };
cin.get(str, 20); //类似于 getline
cout << "str: " << str << endl;
return 0;
}
//输入:jkl jkl jkl
//输出:jkl jkl jkl
//输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
//输出:abcdeabcdeabcdeabcd (接收19个字符 + 1个'\0')
- cin.get (sin parámetro) se usa 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>
using namespace std;
int main()
{
char str[10] = { 0 };
cin.get(str, 10);
cin.get(); //用于吃掉回车,相当于 getchar()
cout << "str: " << str << endl;
cin.get(str, 5);
cout << "str: " << str << endl;
return 0;
}
//assbdakss
//str: assbdakss
//sdadadsa
//str: sdad
int main()
{
char str[20] = { 0 };
cin.get(str, 20);
//cin.get(); //用于吃掉回车,相当于 getchar()
cout << "str: " << str << endl;
cin.get(str, 5);
cout << "str: " << str << endl;
return 0;
}
//hasdjaksasdhaksd
//str: hasdjaksa
//str: sdha
cin.getline ()
- Reciba una cadena, puede recibir espacios y salida, recibir automáticamente un '\ 0'
#include <iostream>
using namespace std;
int main()
{
char arr[20] = { 0 };
cin.getline(arr, 5);
cout << "arr: " << arr << endl;
return 0;
}
//输入:jkljkljkl
//输出:jklj
//接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;
- cin.getline () en realidad tiene tres parámetros, cin.getline (cadena de recepción, número de recepción, carácter final)
Cuando el tercer parámetro predeterminado, el valor predeterminado del sistema es '\ n'
#include <iostream>
using namespace std;
int main()
{
char arr[10] = { 0 };
cin.getline(arr, 5, 's');
cout << "arr: " << arr << endl;
return 0;
}
//当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
- Cuando se usa en matrices multidimensionales, también puede usar cin.getline (arr [i], 10)
#include <iostream>
using namespace std;
int main()
{
char arr[3][20] = { 0 };
for (int i = 0; i < 3; i++)
{
cout << "请输入第"<< i + 1 <<"个字符串: " << endl;
cin.getline(arr[i], 20);
}
cout << endl;
for (int i = 0; i < 3; i++)
{
cout << "输出 arr[" << i << "] 的值: " << arr[i] << endl;
}
return 0;
}
请输入第1个字符串:
kskr1
请输入第2个字符串:
kskr2
请输入第3个字符串:
kskr3
输出m[0]的值:kskr1
输出m[1]的值:kskr2
输出m[2]的值:kskr3
obtener línea()
Reciba una cadena, puede recibir espacios y resultados, incluidos los archivos de encabezado #include <string>
#include <iostream>
using namespace std;
int main()
{
string str;
getline(cin, str);
cout << "str = " << str << endl;
return 0;
}
与 cin.getline() 类似,但是 cin.getline() 属于 iostream 流,而 getline() 属于 string 流,是不一样的两个函数
obtiene ()
gets () recibe una cadena, puede recibir espacios y resultados, debe incluir #include <string>
#include <iostream>
#include <string>
using namespace std;
int main()
{
char arr[20] = { 0 };
gets(arr); //不能写成 arr = gets()
cout << arr << endl;
return 0;
}
Sin embargo, el código anterior no puede compilar en VS, añadí #include <cstdio>
o #include <stdio.h>
después de la primera todavía no reconoce el archivo recibe función (), y el código de prueba del archivo .c cambiado más adelante es el siguiente:
#include <stdio.h>
int main()
{
char arr[20] = { 0 };
gets(arr); //不能写成 arr = gets()
printf("arr = %s\n", arr);
return 0;
}
getchar ()
Recibe un personaje, incluyendo #include <string>
#include <iostream>
#include <string>
using namespace std;
int main()
{
char ch;
ch = getchar(); //不能写成 getchar(ch)
cout << "ch = " << ch << endl;
return 0;
}
输入:jkljkljkl
输出:j
//getchar()是C语言的函数,C++也可以兼容,但是尽量不用或少用;