Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A <string> fejléc a következő függvényeket biztosítja:
getline
Sztringek kinyerése a bemeneti streamből soronként.
// (1) delimiter as parameter
template <class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline(
basic_istream<CharType, Traits>& in_stream,
basic_string<CharType, Traits, Allocator>& str,
CharType delimiter);
template <class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline(
basic_istream<CharType, Traits>&& in_stream,
basic_string<CharType, Traits, Allocator>& str,
const CharType delimiter);
// (2) default delimiter used
template <class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline(
basic_istream<CharType, Traits>& in_stream,
basic_string<CharType, Traits, Allocator>& str);
template <class Allocator, class Traits, class Allocator>
basic_istream<Allocator, Traits>& getline(
basic_istream<Allocator, Traits>&& in_stream,
basic_string<Allocator, Traits, Allocator>& str);
Paraméterek
in_stream
Az a bemeneti adatfolyam, amelyből sztringet kell kinyerni.
str
Az a sztring, amelybe beolvassa a bemeneti streamben lévő karaktereket.
delimiter
A vonalelválasztó.
Visszaadott érték
A bemeneti adatfolyam in_stream.
Megjegyzések
A függvényadektorok párja karaktert nyer (1) ki in_stream , amíg meg nem delimiter találja őket, és tárolja őket a következőben str: .
A megjelölt függvény-aláíráspárok az új vonallal jelölik (2) meg az alapértelmezett vonalelválasztót, és úgy viselkednek, mint getline(in_stream, str, in_stream. widen('\n')).
Az egyes párok második függvénye az elsőhöz hasonló, amely támogatja rvalue a hivatkozásokat.
A kinyerés az alábbi műveletek valamelyike esetén leáll:
A fájl végén, ebben az esetben a belső állapot jelzője
in_streama következőreios_base::eofbitvan állítva: .Miután a függvény kiolvas egy elemet, amely egyenlő.
delimiterAz elem nem lesz visszarakva vagy hozzáfűzve a szabályozott sorozathoz.Miután a függvény kinyeri az elemeket
str.max_size. A belső állapot jelzőjein_streama következőreios_base::failbitvan állítva: .A korábban felsoroltaktól eltérő egyéb hiba; a belső állapot jelzője
in_streama következőreios_base::badbitvan állítva: .
A belső állapotjelzőkkel kapcsolatos információkért lásd: ios_base::iostate.
Ha a függvény nem nyer ki elemeket, a belső állapot jelzője in_stream a következőre ios_base::failbitvan állítva: . Mindenesetre a getline visszaadott érték in_stream.
Ha a rendszer kivételt jelez, in_stream és str érvényes állapotban marad.
példa
A következő kód két módban mutatja be getline() : először az alapértelmezett elválasztójellel (newline), a másodikban pedig egy elválasztójellel. A fájlvég karakter (CTRL-Z a billentyűzeten) a ciklusok megszakításának szabályozására szolgál. Ez az érték a belső állapotjelzőt a következő értékre cinállítjaeofbit, amelyet a második előtt törölni basic_ios::clear() kell, amíg a ciklus megfelelően működik.
// compile with: /EHsc /W4
#include <string>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
string str;
vector<string> v1;
cout << "Enter a sentence, press ENTER between sentences. (Ctrl-Z to stop): " << endl;
// Loop until end-of-file (Ctrl-Z) is input, store each sentence in a vector.
// Default delimiter is the newline character.
while (getline(cin, str)) {
v1.push_back(str);
}
cout << "The following input was stored with newline delimiter:" << endl;
for (const auto& p : v1) {
cout << p << endl;
}
cin.clear();
vector<string> v2;
// Now try it with a whitespace delimiter
while (getline(cin, str, ' ')) {
v2.push_back(str);
}
cout << "The following input was stored with whitespace as delimiter:" << endl;
for (const auto& p : v2) {
cout << p << endl;
}
}
stod
Karaktersorozatot doublekonvertál .
double stod(
const string& str,
size_t* idx = 0);
double stod(
const wstring& str,
size_t* idx = 0);
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
Visszaadott érték
A double érték.
Megjegyzések
A függvény az elemek str sorrendjét olyan típusú double értékké alakítja, mintha meghívna strtod( str.c_str(), _Eptr)egy objektumot, amely _Eptr a függvényen belül található. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.
stof
Egy karaktersorozatot lebegőpontossá alakít át.
float stof(
const string& str,
size_t* idx = 0);
float stof(
const wstring& str,
size_t* idx = 0);
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
Visszaadott érték
A float érték.
Megjegyzések
A függvény az elemek str sorrendjét olyan típusú float értékké alakítja, mintha meghívna strtof( str.c_str(), _Eptr)egy objektumot, amely _Eptr a függvényen belül található. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.
stoi
Karaktersorozatot egész számmá alakít át.
int stoi(
const string& str,
size_t* idx = 0,
int base = 10);
int stoi(
const wstring& str,
size_t* idx = 0,
int base = 10);
Visszaadott érték
Az egész szám értéke.
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
base
A használni kívánt számalap.
Megjegyzések
A függvény stoi az str karaktersorozatot típusértékké int alakítja, és visszaadja az értéket. Ha például egy "10" karaktersorozatot adott át, a visszaadott stoi érték a 10 egész szám.
stoiaz egy bájtos karakterek függvényéhez hasonlóan viselkedik, amikor a függvényt strtol úgy strtol( str.c_str(), _Eptr, idx)hívják, hogy hol _Eptr van a függvény belső objektuma, vagy wcstol széles karakterek esetén, ha hasonló módon hívják meg. wcstol(Str.c_str(), _Eptr, idx) További információ: strtol, wcstol, _strtol_l. _wcstol_l
Ha str.c_str() == *_Eptr, stoi egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, vagy ha a visszaadott érték nem jeleníthető meg típusobjektumként int, akkor egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha az idx nem null mutató, akkor a függvény a következő helyen *_Eptr - str.c_str()található*idx: .
stol
Karaktersorozatot longkonvertál .
long stol(
const string& str,
size_t* idx = 0,
int base = 10);
long stol(
const wstring& str,
size_t* idx = 0,
int base = 10);
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
base
A használni kívánt számalap.
Visszaadott érték
A hosszú egész szám értéke.
Megjegyzések
A függvény az str elemsort olyan típusú long értékké alakítja, mintha meghívja strtol( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.
stold
Karaktersorozatot long doublekonvertál .
double stold(
const string& str,
size_t* idx = 0);
double stold(
const wstring& str,
size_t* idx = 0);
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
Visszaadott érték
A long double érték.
Megjegyzések
A függvény az str elemsort olyan típusú long double értékké alakítja, mintha meghívja strtold( str.c_str(), _Eptr), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.
stoll
Karaktersorozatot long longkonvertál .
long long stoll(
const string& str,
size_t* idx = 0,
int base = 10);
long long stoll(
const wstring& str,
size_t* idx = 0,
int base = 10);
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
base
A használni kívánt számalap.
Visszaadott érték
A long long érték.
Megjegyzések
A függvény az str elemsort olyan típusú long long értékké alakítja, mintha meghívja strtoll( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha az idx nem null mutató, a függvény *_Eptr - str.c_str() tárolja *idx és visszaadja az értéket.
stoul
Karakterütemezést alakít át aláíratlan hosszúra.
unsigned long stoul(
const string& str,
size_t* idx = 0,
int base = 10);
unsigned long stoul(
const wstring& str,
size_t* idx = 0,
int base = 10);
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
base
A használni kívánt számalap.
Visszaadott érték
Az aláíratlan hosszú egész számérték.
Megjegyzések
A függvény az str elemsort olyan típusú unsigned long értékké alakítja, mintha meghívja strtoul( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha az idx nem null mutató, a függvény *_Eptr - str.c_str() tárolja *idx és visszaadja az értéket.
stoull
Karaktersorozatot unsigned long longalakít át .
unsigned long long stoull(
const string& str,
size_t* idx = 0,
int base = 10);
unsigned long long stoull(
const wstring& str,
size_t* idx = 0,
int base = 10);
Paraméterek
str
A konvertálandó karaktersorozat.
idx
Az első nem fordított karakter indexértéke.
base
A használni kívánt számalap.
Visszaadott érték
A unsigned long long érték.
Megjegyzések
A függvény az str elemsort olyan típusú unsigned long long értékké alakítja, mintha meghívja strtoull( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.
swap
Két sztring karaktertömbjeinek cseréje.
template <class Traits, class Allocator>
void swap(basic_string<CharType, Traits, Allocator>& left, basic_string<CharType, Traits, Allocator>& right);
Paraméterek
left
Egy sztring, amelynek elemeit fel kell cserélni egy másik sztring elemeire.
right
A másik sztring, amelynek elemeit fel kell cserélni az első sztringre.
Megjegyzések
A sablonfüggvény végrehajtja a sztringek speciális tagfüggvényét left.swap(right), amely garantálja az állandó összetettséget.
példa
// string_swap.cpp
// compile with: /EHsc
#include <string>
#include <iostream>
int main( )
{
using namespace std;
// Declaring an object of type basic_string<char>
string s1 ( "Tweedledee" );
string s2 ( "Tweedledum" );
cout << "Before swapping string s1 and s2:" << endl;
cout << "The basic_string s1 = " << s1 << "." << endl;
cout << "The basic_string s2 = " << s2 << "." << endl;
swap ( s1 , s2 );
cout << "\nAfter swapping string s1 and s2:" << endl;
cout << "The basic_string s1 = " << s1 << "." << endl;
cout << "The basic_string s2 = " << s2 << "." << endl;
}
Before swapping string s1 and s2:
The basic_string s1 = Tweedledee.
The basic_string s2 = Tweedledum.
After swapping string s1 and s2:
The basic_string s1 = Tweedledum.
The basic_string s2 = Tweedledee.
to_string
Érték stringkonvertálása .
string to_string(int value);
string to_string(unsigned int value);
string to_string(long value);
string to_string(unsigned long value);
string to_string(long long value);
string to_string(unsigned long long value);
string to_string(float value);
string to_string(double value);
string to_string(long double value);
Paraméterek
value
Az átalakítandó érték.
Visszaadott érték
Az string értéket jelképező érték.
Megjegyzések
A függvény egy tömbobjektumban Buf tárolt elemek sorozatává alakítja át az értéket úgy, mintha meghívja sprintf(Buf, Fmt, value)a függvényt, ahol Fmt
"%d"havaluetípusint"%u"havaluetípusunsigned int"%ld"havaluetípuslong"%lu"havaluetípusunsigned long"%lld"havaluetípuslong long"%llu"havaluetípusunsigned long long"%f"havaluetípusfloatvagydouble"%Lf"havaluetípuslong double
A függvény ad string(Buf)vissza .
to_wstring
Egy értéket széles sztringgé alakít át.
wstring to_wstring(int value);
wstring to_wstring(unsigned int value);
wstring to_wstring(long value);
wstring to_wstring(unsigned long value);
wstring to_wstring(long long value);
wstring to_wstring(unsigned long long value);
wstring to_wstring(float value);
wstring to_wstring(double value);
wstring to_wstring(long double value);
Paraméterek
value
Az átalakítandó érték.
Visszaadott érték
Az értéket jelképező széles sztring.
Megjegyzések
A függvény egy tömbobjektumban value tárolt elemek sorozatává alakítja Buf át a függvényt úgy, mintha meghívja swprintf(Buf, Len, Fmt, value)a függvényt, ahol Fmt
L"%d"havaluetípusintL"%u"havaluetípusunsigned intL"%ld"havaluetípuslongL"%lu"havaluetípusunsigned longL"%lld"havaluetípuslong longL"%llu"havaluetípusunsigned long longL"%f"havaluetípusfloatvagydoubleL"%Lf"havaluetípuslong double
A függvény ad wstring(Buf)vissza .