logo

getline (cadena) en C++

El C++ obtener línea() es una función de biblioteca estándar que se utiliza para leer una cadena o una línea de un flujo de entrada. Es parte del encabezamiento . La función getline() extrae caracteres del flujo de entrada y los agrega al objeto de cadena hasta que se encuentra el carácter delimitador. Mientras lo hace, el valor previamente almacenado en el objeto de cadena cadena será reemplazado por la cadena de entrada, si corresponde.
La función getline() se puede representar de dos maneras:

Sintaxis:

istream& getline(istream& is,   string& str, char delim);>

2. Parámetros:



  • es: Es un objeto de la clase istream y le dice a la función sobre la secuencia desde dónde leer la entrada.
  • cadena: Es un objeto de cadena, la entrada se almacena en este objeto después de ser leída de la secuencia.
  • compartir: Es el carácter de delimitación el que le indica a la función que deje de leer más entradas después de alcanzar este carácter.

Ejemplo: Para demostrar el uso del delimitador en el obtener línea() función.

C++




#include> #include> using> namespace> std;> //macro definitions> #define MAX_NAME_LEN 60 // Maximum len of your name can't be more than 60> #define MAX_ADDRESS_LEN 120 // Maximum len of your address can't be more than 120> #define MAX_ABOUT_LEN 250 // Maximum len of your profession can't be more than 250> int> main () {> >char> y_name[MAX_NAME_LEN], y_address[MAX_ADDRESS_LEN], about_y[MAX_ABOUT_LEN];> >cout <<>'Enter your name: '>;> >cin.getline (y_name, MAX_NAME_LEN);> >cout <<>'Enter your City: '>;> >cin.getline (y_address, MAX_ADDRESS_LEN);> >cout <<>'Enter your profession (press $ to complete): '>;> >cin.getline (about_y, MAX_ABOUT_LEN,>'$'>);>//$ is a delimiter> >cout <<>' Entered details are: '><<>' '>;> >cout <<>'Name: '> << y_name << endl;> >cout <<>'Address: '> << y_address << endl;> >cout <<>'Profession is: '> << about_y << endl;> }>

>

>

Producción:

Producción

Nota: En el ejemplo anterior si el #definir MAX_NAME_LEN 6, Entonces, en este caso, si cruzas el límite definido, entonces , en este caso, su programa detendrá la ejecución y saldrá aplicable para cada macro que haya utilizado con la función getline(). Y tu conseguir el salida como se muestra a continuación:

C++


tutorial de swing java



#include> #include> using> namespace> std;> //macro definitions> #define MAX_NAME_LEN 6 // Maximum length of your name can't be more than 6> #define MAX_ADDRESS_LEN 120 // Maximum length of your address can't be more than 120> #define MAX_ABOUT_LEN 250 // Maximum length of your profession can't be more than 250> int> main () {> >char> y_name[MAX_NAME_LEN], y_address[MAX_ADDRESS_LEN], about_y[MAX_ABOUT_LEN];> >cout <<>'Enter your name: '>;> >cin.getline (y_name, MAX_NAME_LEN);> >cout <<>'Enter your City: '>;> >cin.getline (y_address, MAX_ADDRESS_LEN);> >cout <<>'Enter your profession (press $ to complete): '>;> >cin.getline (about_y, MAX_ABOUT_LEN,>'$'>);>//$ is a delimiter> >cout <<>' Entered details are: '>;> >cout <<>'Name: '> << y_name << endl;> >cout <<>'Address: '> << y_address << endl;> >cout <<>'Profession is: '> << about_y << endl;> }>

>

>

Producción:

Salida_2da

Aquí, es comprensible que la longitud del campo de nombre fuera mayor que el límite definido, por eso el programa detiene la ejecución y sale.

establecido en java

1. Sintaxis:

istream& getline (istream& is, string& str);>

2. La segunda declaración es casi la misma que la primera. La única diferencia es que estos últimos tienen un carácter de delimitación que, por defecto, es un carácter de nueva línea ( ).
Parámetros:

  • es: Es un objeto de la clase istream y le dice a la función sobre la secuencia desde dónde leer la entrada.
  • cadena: Es un objeto de cadena, la entrada se almacena en este objeto después de ser leída de la secuencia.

El siguiente programa demuestra el funcionamiento de la función getline()
Ejemplo 1:

CPP




// C++ program to demonstrate getline() function> #include> #include> using> namespace> std;> int> main()> {> >string str;> >cout <<>'Please enter your name: '>;> >getline(cin, str);> >cout <<>'Hello, '> << str> ><<>' welcome to GfG ! '>;> >return> 0;> }>

>

>

Aporte:

Harsh Agarwal>

Producción:

Hello, Harsh Agarwal welcome to GfG!>

Ejemplo 2: Podemos usar la función getline() para dividir una oración según un carácter. Veamos un ejemplo para entender cómo se puede hacer.

CPP




// C++ program to understand the use of getline() function> #include> using> namespace> std;> int> main()> {> >string S, T;> >getline(cin, S);> >stringstream X(S);> >while> (getline(X, T,>' '>)) {> >cout << T << endl;> >}> >return> 0;> }>

>

>

Aporte:

Hello, Faisal Al Mamun. Welcome to GfG!>

Producción:

Hello, Faisal Al Mamun. Welcome to GfG!>

Precaución : Esta función considera una nueva línea o carácter (' ') como carácter de delimitación y El carácter de nueva línea es una entrada válida para esta función.
A continuación se muestra un ejemplo de cómo una nueva línea puede causar problemas:
Ejemplo:

CPP




cadena.reemplazar todo en java

// C++ program to demonstrate> // anomaly of delimitation of> // getline() function> #include> #include> using> namespace> std;> int> main()> {> >string name;> >int> id;> >// Taking id as input> >cout <<>'Please enter your id: '>;> >cin>> identificación;> >// Takes the empty character as input> >cout <<>'Please enter your name: '>;> >getline(cin, name);> >// Prints id> >cout <<>'Your id : '> << id <<>' '>;> >// Prints nothing in name field> >// as ' ' is considered a valid string> >cout <<>'Hello, '> << name> ><<>' welcome to GfG ! '>;> >// Again Taking string as input> >getline(cin, name);> >// This actually prints the name> >cout <<>'Hello, '> << name> ><<>' welcome to GfG ! '>;> >return> 0;> }>

>

>

Aporte:

7 MOHIT KUMAR>

Producción:

Your id : 7 Hello, welcome to GfG ! Hello, MOHIT KUMAR welcome to GfG !>

Artículos relacionados:

  • ¿Cómo usar getline() en C++ cuando hay líneas en blanco en la entrada?
  • función getline() y matriz de caracteres

Si te gusta techcodeview.com y te gustaría contribuir, también puedes escribir un artículo usando o envíe su artículo por correo a [email protected]
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.