std::getline
De cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Déclaré dans l'en-tête <string>
|
||
template< class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline( std::basic_istream<CharT,Traits>& input, std::basic_string<CharT,Traits,Allocator>& str, CharT delim ); |
(1) | |
template< class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline( std::basic_istream<CharT,Traits>&& input, std::basic_string<CharT,Traits,Allocator>& str, CharT delim ); |
(1) | (depuis C++11) |
template< class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline( std::basic_istream<CharT,Traits>& input, std::basic_string<CharT,Traits,Allocator>& str ); |
(2) | |
template< class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline( std::basic_istream<CharT,Traits>&& input, std::basic_string<CharT,Traits,Allocator>& str ); |
(2) | (depuis C++11) |
getline lit les caractères à partir d'un flux d'entrée et les place dans une chaîne:Original:
getline reads characters from an input stream and places them into a string:The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
1)
Se comporte comme
UnformattedInputFunction, sauf que input.gcount() n'est pas affectée. Après la construction et la vérification de l'objet sentinelle, effectue les opérations suivantes:Original:
Behaves as
UnformattedInputFunction, except that input.gcount() is not affected. After constructing and checking the sentry object, performs the following:The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
1)
Appels
str.erase()Original:
Calls
str.erase()The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
2)
Extrait les caractères de
input et les ajoute à str jusqu'à ce qu'un des événements suivants se produit (vérifié dans l'ordre indiqué)Original:
Extracts characters from
input and appends them to str until one of the following occurs (checked in the order listed)The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
a)
fin-de-fichier sur la situation
input, dans ce cas, getline ensembles eofbit et retours .Original:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
b)
le caractère d'entrée suivant est disponible
delim, telle que mesurée par Traits::eq(c, delim), dans ce cas, le caractère de délimitation est extrait de input, mais n'est pas ajouté à str .Original:
the next available input character is
delim, as tested by Traits::eq(c, delim), in which case the delimiter character is extracted from input, but is not appended to str.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
c)
str.max_size() caractères ont été stockés, dans ce cas, getline ensembles failbit et retours .Original:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
3)
Si aucun caractère ont été extraites pour une raison quelconque (même pas jeté le délimiteur),
getline ensembles failbit et retours .Original:
If no characters were extracted for whatever reason (not even the discarded delimiter),
getline sets failbit and returns.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
2)
Même que
getline(input, str, input.widen(’\n’)), soit le délimiteur par défaut est le caractère fin de ligne .Original:
Same as
getline(input, str, input.widen(’\n’)), that is, the default delimiter is the endline character.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Paramètres
| input | - | le flux pour obtenir les données
Original: the stream to get data from The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| str | - | la chaîne pour mettre les données
Original: the string to put the data into The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| delim | - | le caractère délimiteur
Original: the delimiter character The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Retourne la valeur
input
Exemple
Le code suivant demande à l'utilisateur son nom, puis les salue l'aide de ce nom .
Original:
The following code asks the user for their name, then greets them using that name.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <string>
#include <iostream>
int main()
{
std::string name;
std::cout << "What is your name? ";
std::getline(std::cin, name);
std::cout << "Hello " << name << ", nice to meet you.";
// read file line by line
std::istringstream input;
input.str("1\n2\n3\n4\n5\n6\n7\n");
int sum = 0;
for (std::string line; std::getline(input, line); )
sum += std::stoi(line);
std::cout << "\nThe sum is " << sum << ".\n\n";
// use separator to read parts of the line
std::istringstream input2;
input2.str("a;b;c;d");
for (std::string line; std::getline(input2, line, ';'); )
std::cout << line << '\n';
return 0;
}
Résultat possible :
What is your name? John Q. Public
Hello John Q. Public, nice to meet you.
The sum is 28.
a
b
c
d