logo

getline (chaîne) en C++

Le C++ obtenir la ligne() est une fonction de bibliothèque standard utilisée pour lire une chaîne ou une ligne à partir d'un flux d'entrée. Cela fait partie du entête . La fonction getline() extrait les caractères du flux d'entrée et les ajoute à l'objet chaîne jusqu'à ce que le caractère délimitant soit rencontré. Ce faisant, la valeur précédemment stockée dans l'objet chaîne str sera remplacé par la chaîne d'entrée le cas échéant.
La fonction getline() peut être représentée de deux manières :

Syntaxe:

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

2. Paramètres :



  • est: C'est un objet de la classe istream et indique à la fonction le flux à partir duquel lire l'entrée.
  • str : C'est un objet chaîne, l'entrée est stockée dans cet objet après avoir été lue dans le flux.
  • partager: C'est le caractère de délimitation qui indique à la fonction d'arrêter de lire d'autres entrées après avoir atteint ce caractère.

Exemple: Démontrer l'utilisation du délimiteur dans le obtenir la ligne() fonction.

emojis pomme sur Android

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;> }>

>

>

Sortir:

Sortir

Note: Dans l'exemple ci-dessus, si le #define MAX_NAME_LEN 6, Donc dans ce cas si vous dépassez la limite définie alors , dans ce cas, votre programme arrêtera son exécution et le quittera en vigueur pour chaque macro que vous avez utilisée avec la fonction getline(). Et tu vas obtenir le sortie comme ci-dessous :

C++




#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;> }>

>

>

algorithme de tri par fusion

Sortir:

Sortie_2ème

Ici, il est compréhensible que la longueur du champ de nom soit supérieure à la limite définie, c'est pourquoi le programme arrête l'exécution et se ferme.

1. Syntaxe :

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

2. La deuxième déclaration est presque la même que celle de la première. La seule différence est que ces derniers ont un caractère de délimitation qui est par défaut le caractère newline( ).
Paramètres:

  • est: C'est un objet de la classe istream et indique à la fonction le flux à partir duquel lire l'entrée.
  • str : C'est un objet chaîne, l'entrée est stockée dans cet objet après avoir été lue dans le flux.

Le programme ci-dessous montre le fonctionnement de la fonction getline()
Exemple 1:

RPC




// 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;> }>

>

trier la liste de tableaux java
>

Saisir:

Harsh Agarwal>

Sortir:

Hello, Harsh Agarwal welcome to GfG!>

Exemple 2 : Nous pouvons utiliser la fonction getline() pour diviser une phrase en fonction d'un caractère. Regardons un exemple pour comprendre comment cela peut être fait.

RPC




stdin en c
// 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;> }>

>

>

Saisir:

Hello, Faisal Al Mamun. Welcome to GfG!>

Sortir:

Hello, Faisal Al Mamun. Welcome to GfG!>

Prudence : Cette fonction considère une nouvelle ligne ou un caractère (' ') comme caractère de délimitation et le caractère de nouvelle ligne est une entrée valide pour cette fonction.
Un exemple de la façon dont une nouvelle ligne peut causer un problème est donné ci-dessous :
Exemple:

RPC




Madhuri a dit

// 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>> identifiant;> >// 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;> }>

>

>

Saisir:

7 MOHIT KUMAR>

Sortir:

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

Articles Liés:

  • Comment utiliser getline() en C++ lorsqu'il y a des lignes vides en entrée ?
  • Fonction getline() et tableau de caractères

Si vous aimez techcodeview.com et souhaitez contribuer, vous pouvez également rédiger un article en utilisant ou envoyez votre article à [email protected]
Veuillez écrire des commentaires si vous trouvez quelque chose d'incorrect ou si vous souhaitez partager plus d'informations sur le sujet abordé ci-dessus.