Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'intestazione <string> fornisce le funzioni seguenti:
getline
Estrarre stringhe dal flusso di input riga per riga.
// (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);
Parametri
in_stream
Flusso di input da cui estrarre una stringa.
str
Stringa in cui vengono letti i caratteri dal flusso di input.
delimiter
Delimitatore di riga.
Valore restituito
Flusso di input in_stream.
Osservazioni:
La coppia di firme di funzione contrassegnata con (1) estrae i caratteri da in_stream finché non viene trovato delimiter, archiviandoli in str.
La coppia di firme di funzione contrassegnate (2) usa la nuova riga come delimitatore di riga predefinito e si comporta come getline(in_stream, str, in_stream. widen('\n')).
La seconda funzione di ogni coppia è analogica alla prima per supportare rvalue i riferimenti.
L'estrazione termina quando si verifica una delle condizioni seguenti:
Alla fine del file, nel qual caso il flag di stato interno di
in_streamè impostato suios_base::eofbit.Dopo che la funzione estrae un elemento che confronta uguale a
delimiter. L'elemento non viene reinserato o accodato alla sequenza controllata.Dopo che la funzione estrae gli
str.max_sizeelementi. Il flag di stato interno diin_streamè impostato suios_base::failbit.Altri errori diversi da quelli elencati in precedenza; il flag di stato interno di
in_streamè impostato suios_base::badbit.
Per informazioni sui flag di stato interni, vedere ios_base::iostate.
Se la funzione non estrae alcun elemento, il flag di stato interno di in_stream viene impostato su ios_base::failbit. In ogni caso, getline restituisce in_stream.
Se viene generata un'eccezione, in_stream e str rimangono in uno stato valido.
Esempio
Il codice seguente illustra getline() secondo due modalità: la prima con il delimitatore predefinito (carattere di nuova riga) e la seconda con uno spazio vuoto come delimitatore. Il carattere di fine file (CTRL-Z sulla tastiera) viene usato per controllare la terminazione dei cicli while. Questo valore imposta il flag di stato interno di cin su eofbit, che deve essere cancellato con basic_ios::clear() prima del secondo ciclo while funzionerà correttamente.
// 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
Converte una sequenza di caratteri in double.
double stod(
const string& str,
size_t* idx = 0);
double stod(
const wstring& str,
size_t* idx = 0);
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
Valore restituito
Valore double.
Osservazioni:
La funzione converte la sequenza di elementi in in str un valore di tipo double come se chiamando strtod( str.c_str(), _Eptr), dove _Eptr è un oggetto interno alla funzione . Se str.c_str() == *_Eptr, genera un oggetto di tipo invalid_argument. Se tale chiamata imposta errno, viene generato un oggetto di tipo out_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx e restituisce il valore.
stof
Converte una sequenza di caratteri in un tipo float.
float stof(
const string& str,
size_t* idx = 0);
float stof(
const wstring& str,
size_t* idx = 0);
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
Valore restituito
Valore float.
Osservazioni:
La funzione converte la sequenza di elementi in in str un valore di tipo float come se chiamando strtof( str.c_str(), _Eptr), dove _Eptr è un oggetto interno alla funzione . Se str.c_str() == *_Eptr, genera un oggetto di tipo invalid_argument. Se tale chiamata imposta errno, viene generato un oggetto di tipo out_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx e restituisce il valore.
stoi
Converte una sequenza di caratteri in un Integer.
int stoi(
const string& str,
size_t* idx = 0,
int base = 10);
int stoi(
const wstring& str,
size_t* idx = 0,
int base = 10);
Valore restituito
Valore Integer.
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
base
Base numerica da usare.
Osservazioni:
La funzione stoi converte la sequenza di caratteri in str in un valore di tipo int e restituisce il valore . Ad esempio, se viene passata la sequenza di caratteri "10", il valore restituito da stoi sarà 10.
stoi si comporta in modo analogo alla funzione strtol per i caratteri a byte singolo quando viene chiamata nel modo strtol( str.c_str(), _Eptr, idx), dove _Eptr è un oggetto interno alla funzione; o wcstol per i caratteri wide, quando viene chiamato in modo simile, wcstol(Str.c_str(), _Eptr, idx). Per altre informazioni, vedere strtol, wcstol, _strtol_l, _wcstol_l.
Se str.c_str() == *_Eptr, stoi genera un oggetto di tipo invalid_argument. Se una chiamata di questo tipo imposta errnoo se il valore restituito non può essere rappresentato come oggetto di tipo , genera un oggetto di tipo intout_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx.
stol
Converte una sequenza di caratteri in long.
long stol(
const string& str,
size_t* idx = 0,
int base = 10);
long stol(
const wstring& str,
size_t* idx = 0,
int base = 10);
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
base
Base numerica da usare.
Valore restituito
Valore Long Integer.
Osservazioni:
La funzione converte la sequenza di elementi in str in funzione. Se str.c_str() == *_Eptr, genera un oggetto di tipo invalid_argument. Se tale chiamata imposta errno, viene generato un oggetto di tipo out_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx e restituisce il valore.
stold
Converte una sequenza di caratteri in long double.
double stold(
const string& str,
size_t* idx = 0);
double stold(
const wstring& str,
size_t* idx = 0);
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
Valore restituito
Valore long double.
Osservazioni:
La funzione converte la sequenza di elementi in str in funzione. Se str.c_str() == *_Eptr, genera un oggetto di tipo invalid_argument. Se tale chiamata imposta errno, viene generato un oggetto di tipo out_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx e restituisce il valore.
stoll
Converte una sequenza di caratteri in long long.
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);
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
base
Base numerica da usare.
Valore restituito
Valore long long.
Osservazioni:
La funzione converte la sequenza di elementi in str in funzione. Se str.c_str() == *_Eptr, genera un oggetto di tipo invalid_argument. Se tale chiamata imposta errno, viene generato un oggetto di tipo out_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx e restituisce il valore.
stoul
Converte una sequenza di caratteri in un tipo unsigned long.
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);
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
base
Base numerica da usare.
Valore restituito
Valore Unsigned Long Integer.
Osservazioni:
La funzione converte la sequenza di elementi in str in funzione. Se str.c_str() == *_Eptr, genera un oggetto di tipo invalid_argument. Se tale chiamata imposta errno, viene generato un oggetto di tipo out_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx e restituisce il valore.
stoull
Converte una sequenza di caratteri in un tipo unsigned long long.
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);
Parametri
str
Sequenza di caratteri da convertire.
idx
Valore di indice del primo carattere non convertito.
base
Base numerica da usare.
Valore restituito
Valore unsigned long long.
Osservazioni:
La funzione converte la sequenza di elementi in str in funzione. Se str.c_str() == *_Eptr, genera un oggetto di tipo invalid_argument. Se tale chiamata imposta errno, viene generato un oggetto di tipo out_of_range. In caso contrario, se idx non è un puntatore Null, la funzione archivia *_Eptr - str.c_str() in *idx e restituisce il valore.
swap
Scambia le matrici di caratteri di due stringhe.
template <class Traits, class Allocator>
void swap(basic_string<CharType, Traits, Allocator>& left, basic_string<CharType, Traits, Allocator>& right);
Parametri
left
Stringa i cui elementi devono essere scambiati con gli elementi di un'altra stringa.
right
Altra stringa di cui scambiare gli elementi con quelli della prima stringa.
Osservazioni:
La funzione modello esegue la funzione left.swapmembro specializzata (right) per le stringhe, che garantisce una complessità costante.
Esempio
// 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
Converte un valore in un valore string.
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);
Parametri
value
Valore da convertire.
Valore restituito
Valore string che rappresenta il valore X.
Osservazioni:
La funzione converte il valore in una sequenza di elementi archiviati in un oggetto Buf matrice interno alla funzione come se chiamando sprintf(Buf, Fmt, value), dove Fmt è
"%d"sevalueè di tipoint"%u"sevalueè di tipounsigned int"%ld"sevalueè di tipolong"%lu"sevalueè di tipounsigned long"%lld"sevalueè di tipolong long"%llu"sevalueè di tipounsigned long long"%f"sevalueè di tipofloatodouble"%Lf"sevalueè di tipolong double
La funzione restituisce string(Buf).
to_wstring
Converte un valore in un valore string di tipo wide.
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);
Parametri
value
Valore da convertire.
Valore restituito
Stringa a caratteri "wide" che rappresenta il valore.
Osservazioni:
La funzione converte value in una sequenza di elementi archiviati in un oggetto matrice Buf interno alla funzione come se venisse chiamato swprintf(Buf, Len, Fmt, value), in cui Fmt è
L"%d"sevalueè di tipointL"%u"sevalueè di tipounsigned intL"%ld"sevalueè di tipolongL"%lu"sevalueè di tipounsigned longL"%lld"sevalueè di tipolong longL"%llu"sevalueè di tipounsigned long longL"%f"sevalueè di tipofloatodoubleL"%Lf"sevalueè di tipolong double
La funzione restituisce wstring(Buf).