logo

C++ getline()

Cin ir objekts, kas tiek izmantots, lai saņemtu ievadi no lietotāja, bet neļauj iegūt ievadi vairākās rindās. Lai pieņemtu vairākas rindas, mēs izmantojam funkciju getline(). Tā ir iepriekš definēta funkcija, kas definēta a galvenes fails, ko izmanto, lai pieņemtu rindiņu vai virkni no ievades straumes, līdz tiek atrasta norobežojošā rakstzīme.

Funkcijas getline() sintakse:

Ir divi veidi, kā attēlot funkciju:

  • Pirmais deklarēšanas veids ir trīs parametru nodošana.
 istream& getline( istream& is, string& str, char delim ); 

Iepriekš minētā sintakse satur trīs parametrus, t.i., ir, str , un ES dalos .

kur,

ir: Tas ir istream klases objekts, kas nosaka, no kurienes lasīt ievades straumi.

str: Tas ir virknes objekts, kurā tiek saglabāta virkne.

objektu vienlīdzība java
dalīties: Tas ir norobežojošais raksturs.

Atdeves vērtība

Šī funkcija atgriež ievades straumes objektu, kas tiek nodots funkcijai kā parametrs.

  • Otrs deklarēšanas veids ir divu parametru nodošana.
 istream& getline( istream& is, string& str ); 

Iepriekš minētā sintakse satur divus parametrus, t.i., ir un str . Šī sintakse ir gandrīz līdzīga iepriekšminētajai sintaksei; vienīgā atšķirība ir tā, ka tai nav nekāda norobežojoša rakstura.

nosauciet pilsētu ASV

kur,

ir: Tas ir istream klases objekts, kas nosaka, no kurienes lasīt ievades straumi.

str: Tas ir virknes objekts, kurā tiek saglabāta virkne.

Atdeves vērtība

Šī funkcija arī atgriež ievades straumi, kas tiek nodota funkcijai kā parametrs.

Sapratīsim, izmantojot piemēru.

Pirmkārt, mēs apskatīsim piemēru, kur mēs ņemam lietotāja ievadi, neizmantojot funkciju 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>

Iepriekš minētajā izvadē kā lietotāja ievade tika norādīts vārds 'Džons Millers', taču tika parādīts tikai vārds 'Džons'. Tāpēc mēs secinām, ka cin neņem vērā rakstzīmi, kad tiek sastapta atstarpes rakstzīme.

Atrisināsim iepriekš minēto problēmu, izmantojot funkciju getline().

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

Iepriekš minētajā izvadē mēs varam novērot, ka tiek parādīti abi vārdi, t.i., Džons un Millers, kas nozīmē, ka funkcija getline () ņem vērā arī rakstzīmi pēc atstarpes rakstzīmes.

zvaigžņu topoloģija

Ja mēs nevēlamies lasīt rakstzīmi aiz atstarpes, mēs izmantojam šādu kodu:

 #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 rakstzīmju masīvs

Mēs varam arī definēt funkciju getline() rakstzīmju masīvam, taču tās sintakse atšķiras no iepriekšējās.

Sintakse

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

Iepriekš minētajā sintaksē ir divi parametri; viens ir char *, un otrs ir Izmērs .

kur,

char*: Tas ir rakstzīmju rādītājs, kas norāda uz masīvu.

Izmērs: Tas darbojas kā norobežotājs, kas nosaka masīva lielumu, kas nozīmē, ka ievade nevar šķērsot šo izmēru.

Sapratīsim, izmantojot piemēru.

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