C ++: explicación detallada de cómo ingresar una cadena


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

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

cin >>

  1. 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;
}
  1. 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 ()

  1. 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
  1. 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')
  1. 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 ()

  1. 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个字符输出;

  1. 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
  1. 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++也可以兼容,但是尽量不用或少用;
152 artículos originales publicados · 45 elogiados · 10,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/AngelDg/article/details/105042844
Recomendado
Clasificación