logo

C++ getline()

Cin yra objektas, naudojamas priimti įvestį iš vartotojo, bet neleidžiantis priimti įvesties keliomis eilutėmis. Norėdami priimti kelias eilutes, naudojame funkciją getline(). Tai iš anksto nustatyta funkcija, apibrėžta a antraštės failas, naudojamas priimti eilutę arba eilutę iš įvesties srauto, kol aptinkamas skiriamasis simbolis.

Funkcijos getline() sintaksė:

Yra du funkcijos vaizdavimo būdai:

  • Pirmasis deklaravimo būdas yra trijų parametrų perdavimas.
 istream& getline( istream& is, string& str, char delim ); 

Aukščiau pateiktoje sintaksėje yra trys parametrai, t.y. yra, str , ir aš dalinuosi .

kur,

yra: Tai yra istream klasės objektas, nurodantis, iš kur nuskaityti įvesties srautą.

str: Tai eilutės objektas, kuriame saugoma eilutė.

velykiniai kiaušiniai android
Dalintis: Tai yra ribinis simbolis.

Grąžinimo vertė

Ši funkcija grąžina įvesties srauto objektą, kuris perduodamas kaip parametras funkcijai.

  • Antrasis deklaravimo būdas – perduoti du parametrus.
 istream& getline( istream& is, string& str ); 

Aukščiau pateiktoje sintaksėje yra du parametrai, t.y. yra ir g . Ši sintaksė yra beveik panaši į aukščiau pateiktą sintaksę; vienintelis skirtumas yra tas, kad jis neturi jokio atribojimo.

kur,

yra: Tai yra istream klasės objektas, nurodantis, iš kur nuskaityti įvesties srautą.

java eilutę palyginkite

str: Tai eilutės objektas, kuriame saugoma eilutė.

Grąžinimo vertė

Ši funkcija taip pat grąžina įvesties srautą, kuris perduodamas kaip parametras funkcijai.

Supraskime per pavyzdį.

Pirmiausia pažiūrėsime į pavyzdį, kuriame vartotojo įvestį imame nenaudodami funkcijos getline().

 #include #include using namespace std; int main() { string name; // variable declaration std::cout &lt;&lt; &apos;Enter your name :&apos; &lt;&gt;name; cout&lt;<'
hello '<<name; return 0; } < pre> <p>In the above code, we take the user input by using the statement <strong>cin&gt;&gt;name,</strong> i.e., we have not used the <strong>getline()</strong> function.</p> <p> <strong>Output</strong> </p> <pre> Enter your name : John Miller Hello John </pre> <p>In the above output, we gave the name &apos;John Miller&apos; as user input, but only &apos;John&apos; was displayed. Therefore, we conclude that cin does not consider the character when the space character is encountered.</p> <p> <strong>Let&apos;s resolve the above problem by using getline() function.</strong> </p> <pre> #include #include using namespace std; int main() { string name; // variable declaration. std::cout &lt;&lt; &apos;Enter your name :&apos; &lt;&lt; std::endl; getline(cin,name); // implementing a getline() function cout&lt;<'
hello '<<name; return 0;} < pre> <p>In the above code, we have used the <strong>getline()</strong> function to accept the character even when the space character is encountered.</p> <p> <strong>Output</strong> </p> <pre> Enter your name : John Miller Hello John Miller </pre> <p>In the above output, we can observe that both the words, i.e., John and Miller, are displayed, which means that the getline() function considers the character after the space character also.</p> <p> <strong>When we do not want to read the character after space then we use the following code:</strong> </p> <pre> #include #include using namespace std; int main() { string profile; // variable declaration std::cout &lt;&lt; &apos;Enter your profile :&apos; &lt;&lt; std::endl; getline(cin,profile,&apos; &apos;); // implementing getline() function with a delimiting character. cout&lt;<'
profile is :'<<p>In the above code, we take the user input by using getline() function, but this time we also add the delimiting character(&apos;&apos;) in a third parameter. Here, delimiting character is a space character, means the character that appears after space will not be considered.<p></p> <p> <strong>Output</strong> </p> <pre> Enter your profile : Software Developer Profile is: Software </pre> <h3>Getline Character Array</h3> <p>We can also define the getline() function for character array, but its syntax is different from the previous one.</p> <p> <strong>Syntax</strong> </p> <pre> istream&amp; getline(char* , int size); </pre> <p>In the above syntax, there are two parameters; one is <strong>char</strong> *, and the other is <strong>size</strong> .</p> <p> <strong>Where,</strong> </p> <p> <strong>char*:</strong> It is a character pointer that points to the array.</p> <p> <strong>Size:</strong> It acts as a delimiter that defines the size of the array means input cannot cross this size.</p> <p> <strong>Let&apos;s understand through an example.</strong> </p> <pre> #include #include using namespace std; int main() { char fruits[50]; // array declaration cout&lt;&lt; &apos;Enter your favorite fruit: &apos;; cin.getline(fruits, 50); // implementing getline() function std::cout &lt;&lt; &apos;
Your favorite fruit is :&apos;&lt;<fruits << std::endl; return 0; } < pre> <p> <strong>Output</strong> </p> <pre> Enter your favorite fruit: Watermelon Your favorite fruit is: Watermelon </pre> <hr></fruits></pre></'
profile></pre></'
hello></pre></'
hello>

Aukščiau pateiktoje išvestyje kaip vartotojo įvestį suteikėme pavadinimą „John Miller“, tačiau buvo rodomas tik „Jonas“. Todėl darome išvadą, kad cin neatsižvelgia į simbolį, kai susiduria su tarpo simboliu.

Išspręskime aukščiau pateiktą problemą naudodami getline() funkciją.

 #include #include using namespace std; int main() { string name; // variable declaration. std::cout &lt;&lt; &apos;Enter your name :&apos; &lt;&lt; std::endl; getline(cin,name); // implementing a getline() function cout&lt;<\'
hello \'<<name; return 0;} < pre> <p>In the above code, we have used the <strong>getline()</strong> function to accept the character even when the space character is encountered.</p> <p> <strong>Output</strong> </p> <pre> Enter your name : John Miller Hello John Miller </pre> <p>In the above output, we can observe that both the words, i.e., John and Miller, are displayed, which means that the getline() function considers the character after the space character also.</p> <p> <strong>When we do not want to read the character after space then we use the following code:</strong> </p> <pre> #include #include using namespace std; int main() { string profile; // variable declaration std::cout &lt;&lt; &apos;Enter your profile :&apos; &lt;&lt; std::endl; getline(cin,profile,&apos; &apos;); // implementing getline() function with a delimiting character. cout&lt;<\'
profile is :\'<<p>In the above code, we take the user input by using getline() function, but this time we also add the delimiting character(&apos;&apos;) in a third parameter. Here, delimiting character is a space character, means the character that appears after space will not be considered.<p></p> <p> <strong>Output</strong> </p> <pre> Enter your profile : Software Developer Profile is: Software </pre> <h3>Getline Character Array</h3> <p>We can also define the getline() function for character array, but its syntax is different from the previous one.</p> <p> <strong>Syntax</strong> </p> <pre> istream&amp; getline(char* , int size); </pre> <p>In the above syntax, there are two parameters; one is <strong>char</strong> *, and the other is <strong>size</strong> .</p> <p> <strong>Where,</strong> </p> <p> <strong>char*:</strong> It is a character pointer that points to the array.</p> <p> <strong>Size:</strong> It acts as a delimiter that defines the size of the array means input cannot cross this size.</p> <p> <strong>Let&apos;s understand through an example.</strong> </p> <pre> #include #include using namespace std; int main() { char fruits[50]; // array declaration cout&lt;&lt; &apos;Enter your favorite fruit: &apos;; cin.getline(fruits, 50); // implementing getline() function std::cout &lt;&lt; &apos;
Your favorite fruit is :&apos;&lt;<fruits << std::endl; return 0; } < pre> <p> <strong>Output</strong> </p> <pre> Enter your favorite fruit: Watermelon Your favorite fruit is: Watermelon </pre> <hr></fruits></pre></\'
profile></pre></\'
hello>

Aukščiau pateiktoje išvestyje galime pastebėti, kad rodomi abu žodžiai, ty John ir Miller, o tai reiškia, kad funkcija getline () taip pat atsižvelgia į po tarpo esantį simbolį.

Kai nenorime skaityti simbolio po tarpo, naudojame šį kodą:

 #include #include using namespace std; int main() { string profile; // variable declaration std::cout &lt;&lt; &apos;Enter your profile :&apos; &lt;&lt; std::endl; getline(cin,profile,&apos; &apos;); // implementing getline() function with a delimiting character. cout&lt;<\'
profile is :\'<<p>In the above code, we take the user input by using getline() function, but this time we also add the delimiting character(&apos;&apos;) in a third parameter. Here, delimiting character is a space character, means the character that appears after space will not be considered.<p></p> <p> <strong>Output</strong> </p> <pre> Enter your profile : Software Developer Profile is: Software </pre> <h3>Getline Character Array</h3> <p>We can also define the getline() function for character array, but its syntax is different from the previous one.</p> <p> <strong>Syntax</strong> </p> <pre> istream&amp; getline(char* , int size); </pre> <p>In the above syntax, there are two parameters; one is <strong>char</strong> *, and the other is <strong>size</strong> .</p> <p> <strong>Where,</strong> </p> <p> <strong>char*:</strong> It is a character pointer that points to the array.</p> <p> <strong>Size:</strong> It acts as a delimiter that defines the size of the array means input cannot cross this size.</p> <p> <strong>Let&apos;s understand through an example.</strong> </p> <pre> #include #include using namespace std; int main() { char fruits[50]; // array declaration cout&lt;&lt; &apos;Enter your favorite fruit: &apos;; cin.getline(fruits, 50); // implementing getline() function std::cout &lt;&lt; &apos;
Your favorite fruit is :&apos;&lt;<fruits << std::endl; return 0; } < pre> <p> <strong>Output</strong> </p> <pre> Enter your favorite fruit: Watermelon Your favorite fruit is: Watermelon </pre> <hr></fruits></pre></\'
profile>

„Getline“ simbolių masyvas

Taip pat galime apibrėžti funkciją getline() simbolių masyvei, tačiau jos sintaksė skiriasi nuo ankstesnės.

Parsisiųsti youtube vaizdo įrašus į vlc

Sintaksė

 istream&amp; getline(char* , int size); 

Aukščiau pateiktoje sintaksėje yra du parametrai; vienas yra char *, o kitas yra dydis .

kur,

char*: Tai simbolių rodyklė, nurodanti į masyvą.

Dydis: Jis veikia kaip skyriklis, apibrėžiantis masyvo dydį, todėl įvestis negali kirsti šio dydžio.

Supraskime per pavyzdį.

 #include #include using namespace std; int main() { char fruits[50]; // array declaration cout&lt;&lt; &apos;Enter your favorite fruit: &apos;; cin.getline(fruits, 50); // implementing getline() function std::cout &lt;&lt; &apos;
Your favorite fruit is :&apos;&lt;<fruits << std::endl; return 0; } < pre> <p> <strong>Output</strong> </p> <pre> Enter your favorite fruit: Watermelon Your favorite fruit is: Watermelon </pre> <hr></fruits>