cin on objekti, jota käytetään syötteen vastaanottamiseen käyttäjältä, mutta se ei salli syötettä useilla riveillä. Useiden rivien hyväksymiseksi käytämme getline()-funktiota. Se on ennalta määritetty funktio, joka on määritelty kohdassa a otsikkotiedostoa käytetään hyväksymään rivi tai merkkijono syöttövirrasta, kunnes erottava merkki löytyy.
Getline()-funktion syntaksi:
On kaksi tapaa esittää funktiota:
- Ensimmäinen tapa ilmoittaa on antaa kolme parametria.
istream& getline( istream& is, string& str, char delim );
Yllä oleva syntaksi sisältää kolme parametria, ts. on, str , ja jaan .
Missä,
On: Se on istream-luokan objekti, joka määrittää, mistä syöttövirta luetaan.
str: Se on merkkijonoobjekti, johon merkkijono on tallennettu.
gimp-fonttiluetteloJaa: Se on rajaava hahmo.
Palautusarvo
Tämä funktio palauttaa syötevirtaobjektin, joka välitetään parametrina funktiolle.
- Toinen tapa ilmoittaa on antaa kaksi parametria.
istream& getline( istream& is, string& str );
Yllä oleva syntaksi sisältää kaksi parametria, ts. On ja str . Tämä syntaksi on melkein samanlainen kuin yllä oleva syntaksi; Ainoa ero on, että sillä ei ole mitään rajaavaa luonnetta.
Missä,
q2 kuukautta
On: Se on istream-luokan objekti, joka määrittää, mistä syöttövirta luetaan.
str: Se on merkkijonoobjekti, johon merkkijono on tallennettu.
Palautusarvo
Tämä funktio palauttaa myös syötevirran, joka välitetään parametrina funktiolle.
Ymmärretään esimerkin kautta.
Ensin tarkastellaan esimerkkiä, jossa otamme käyttäjän syötteen käyttämättä getline()-funktiota.
#include #include using namespace std; int main() { string name; // variable declaration std::cout << 'Enter your name :' <>name; cout<<' hello '<<name; return 0; } < pre> <p>In the above code, we take the user input by using the statement <strong>cin>>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 'John Miller' as user input, but only 'John' was displayed. Therefore, we conclude that cin does not consider the character when the space character is encountered.</p> <p> <strong>Let'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 << 'Enter your name :' << std::endl; getline(cin,name); // implementing a getline() function cout<<' 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 << 'Enter your profile :' << std::endl; getline(cin,profile,' '); // implementing getline() function with a delimiting character. cout<<' 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('') 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& 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's understand through an example.</strong> </p> <pre> #include #include using namespace std; int main() { char fruits[50]; // array declaration cout<< 'Enter your favorite fruit: '; cin.getline(fruits, 50); // implementing getline() function std::cout << ' Your favorite fruit is :'<<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>
Yllä olevassa tulosteessa annoimme käyttäjän syötteeksi nimen 'John Miller', mutta vain 'John' näytettiin. Siksi päättelemme, että cin ei ota merkkiä huomioon, kun välilyöntimerkki kohtaa.
Ratkaistaan yllä oleva ongelma käyttämällä getline()-funktiota.
#include #include using namespace std; int main() { string name; // variable declaration. std::cout << 'Enter your name :' << std::endl; getline(cin,name); // implementing a getline() function cout<<\' 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 << 'Enter your profile :' << std::endl; getline(cin,profile,' '); // implementing getline() function with a delimiting character. cout<<\' 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('') 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& 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's understand through an example.</strong> </p> <pre> #include #include using namespace std; int main() { char fruits[50]; // array declaration cout<< 'Enter your favorite fruit: '; cin.getline(fruits, 50); // implementing getline() function std::cout << ' Your favorite fruit is :'<<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>
Yllä olevassa lähdössä voidaan havaita, että molemmat sanat, eli John ja Miller, näytetään, mikä tarkoittaa, että getline()-funktio ottaa huomioon myös välilyönnin jälkeisen merkin.
Kun emme halua lukea merkkiä välilyönnin jälkeen, käytämme seuraavaa koodia:
merkkijonomenetelmät java
#include #include using namespace std; int main() { string profile; // variable declaration std::cout << 'Enter your profile :' << std::endl; getline(cin,profile,' '); // implementing getline() function with a delimiting character. cout<<\' 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('') 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& 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's understand through an example.</strong> </p> <pre> #include #include using namespace std; int main() { char fruits[50]; // array declaration cout<< 'Enter your favorite fruit: '; cin.getline(fruits, 50); // implementing getline() function std::cout << ' Your favorite fruit is :'<<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-merkkitaulukko
Voimme myös määrittää funktion getline() merkkijonolle, mutta sen syntaksi on erilainen kuin edellisessä.
Syntaksi
istream& getline(char* , int size);
Yllä olevassa syntaksissa on kaksi parametria; yksi on hiiltyä * ja toinen on koko .
Missä,
hiiltyä*: Se on merkkiosoitin, joka osoittaa taulukkoon.
Koko: Se toimii erottimena, joka määrittää taulukon koon, joten syöte ei voi ylittää tätä kokoa.
Ymmärretään esimerkin kautta.
#include #include using namespace std; int main() { char fruits[50]; // array declaration cout<< 'Enter your favorite fruit: '; cin.getline(fruits, 50); // implementing getline() function std::cout << ' Your favorite fruit is :'<<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>
\' profile>\' hello>' hello>