<iomanip>
işlevleri
get_money
get_time
put_money
put_time
quoted
resetiosflags
setbase
setfill
setiosflags
setprecision
setw
get_money
Belirtilen biçimi kullanarak bir akıştan parasal değer ayıklar ve parametredeki değeri döndürür.
template <class Money>
T7 get_money(Money& amount, bool use_intl);
Parametreler
amount
Ayıklanan parasal değer.
use_intl
ise true
, uluslararası biçim kullanın. Varsayılan değer şudur: false
.
Açıklamalar
Manipülatör, akışından str
ayıklandığında, uluslararası biçimi belirtmek için kullanarak use_intl
ile str
ilişkilendirilmiş yerel ayar modelinde money_get
üye işlevini get
çağıran bir formatted input function
nesne döndürür. Başarılı olursa, çağrı ayıklanan parasal değerde amount
depolar. Ardından manipülatör döndürür str
.
Money
ile aynı öğe ve özellik parametreleriyle str
türünde long double
veya örneği basic_string
olmalıdır.
get_time
Belirtilen biçimi kullanarak bir akıştan zaman değeri ayıklar. Bir parametredeki değeri zaman yapısı olarak döndürür.
template <class Elem>
T10 get_time(struct tm *time_ptr, const Elem *time_format);
Parametreler
time_ptr
Zaman yapısı biçimindeki zaman.
time_format
Saat değerini almak için kullanılacak biçim.
Açıklamalar
Manipülatör, akışından str
ayıklandığında, ile ilişkilendirilmiş str
yerel ayar modelinde time_get
üye işlevini get
çağıran bir formatted input function
nesne döndürür; bunu kullanarak tptr
zaman yapısını belirtir ve fmt
null ile sonlandırılan biçim dizesinin başlangıcını belirtir. Başarılı olursa, çağrı ayıklanan zaman alanlarıyla ilişkili değerleri zaman yapısında depolar. Ardından manipülatör döndürür str
.
Örnek
#include <ctime>
#include <iomanip>
#include <iostream>
int main()
{
std::cout << "Enter a time, for example 15:24 for 3:24pm: ";
struct std::tm when;
std::cin >> std::get_time(&when, "%R");
if (!std::cin.fail())
{
std::cout << "Entered: " << when.tm_hour << " hours, " << when.tm_min << " minutes\n";
}
return (int)std::cin.fail();
}
put_money
Belirtilen biçimi kullanarak bir akışa parasal tutar ekler.
template <class Money>
T8 put_money(const Money& amount, bool use_intl);
Parametreler
amount
Akışa eklenecek parasal tutar.
use_intl
true
Manipülatör uluslararası biçim kullanmalıdır, false
değilse olarak ayarlayın.
Dönüş Değeri
str
döndürür.
Açıklamalar
Manipülatör, akışına str
eklendiğinde ile str
ilişkilendirilmiş yerel ayar modelinde money_put
üye işlevini çağıran biçimlendirilmiş bir çıkış işlevi put
olarak davranan bir nesne döndürür. Başarılı olursa, çağrıamount
, uluslararası biçimi belirtmek için use_intl ve str.fill()
dolgu öğesi olarak kullanarak uygun şekilde biçimlendirilir. Ardından manipülatör döndürür str
.
Money
ile aynı öğe ve özellik parametreleriyle str
türünde long double
veya örneği basic_string
olmalıdır.
put_time
Belirli bir biçimi kullanarak bir zaman yapısından akışa bir zaman değeri yazar.
template <class Elem>
T10 put_time(struct tm* time_ptr, const Elem* time_format);
Parametreler
time_ptr
Akışa yazacak zaman değeri, bir zaman yapısında sağlanır.
time_format
Saat değerini yazma biçimi.
Açıklamalar
Manipülatör, akışına str
eklendiğinde olarak davranan bir formatted output function
nesnesi döndürür. Çıkış işlevi, ile str
ilişkilendirilmiş yerel ayar modelinde time_put
üye işlevini put
çağırır. Çıkış işlevi, zaman yapısını belirtmek ve time_format
null ile sonlandırılan biçim dizesinin başlangıcını belirtmek için kullanırtime_ptr
. Başarılı olursa, çağrı biçim dizesinden değişmez metin ve zaman yapısından dönüştürülmüş değerler ekler. Ardından manipülatör döndürür str
.
quoted
(C++14 sürümündeki yenilikler) iostream
ve <<
işleçlerini kullanarak akışların içine ve dışına dizelerin kolayca yuvarlamasını >>
sağlayan bir manipülatör.
quoted(std::string str) // or wstring
quoted(const char* str) //or wchar_t*
quoted(std::string str, char delimiter, char escape) // or wide versions
quoted(const char* str, char delimiter, char escape) // or wide versions
Parametreler
str
, std::string
, char*
dize değişmez değeri veya ham dize değişmez değeri veya bunlardan herhangi birinin geniş bir sürümü (örneğin, , std::wstring
wchar_t*
).
delimiter
Dizenin başlangıcı ve sonu için sınırlayıcı olarak kullanılacak, kullanıcı tarafından belirtilen bir karakter veya geniş karakter.
escape
Dize içindeki kaçış dizileri için kaçış karakteri olarak kullanılacak, kullanıcı tarafından belirtilen bir karakter veya geniş karakter.
Açıklamalar
Bkz. Ekleme İşleçlerini Kullanma ve Biçimi Denetleme.
Örnekler
Bu örnekte, dar dizeler kullanılarak varsayılan sınırlayıcı ve kaçış karakteriyle nasıl kullanılacağı quoted
gösterilmektedir. Geniş dizeler de aynı şekilde desteklenir.
#include <iostream>
#include <iomanip>
#include <sstream>
using namespace std;
void show_quoted_v_nonquoted()
{
// Results are identical regardless of input string type:
// string inserted { R"(This is a "sentence".)" }; // raw string literal
// string inserted { "This is a \"sentence\"." }; // regular string literal
const char* inserted = "This is a \"sentence\"."; // const char*
stringstream ss, ss_quoted;
string extracted, extracted_quoted;
ss << inserted;
ss_quoted << quoted(inserted);
cout << "ss.str() is storing : " << ss.str() << endl;
cout << "ss_quoted.str() is storing: " << ss_quoted.str() << endl << endl;
// Round-trip the strings
ss >> extracted;
ss_quoted >> quoted(extracted_quoted);
cout << "After round trip: " << endl;
cout << "Non-quoted : " << extracted << endl;
cout << "Quoted : " << extracted_quoted << endl;
}
int main(int argc, char* argv[])
{
show_quoted_v_nonquoted();
// Keep console window open in debug mode.
cout << endl << "Press Enter to exit" << endl;
string input{};
getline(cin, input);
}
/* Output:
ss.str() is storing : This is a "sentence".
ss_quoted.str() is storing: "This is a \"sentence\"."
After round trip:
Non-quoted : This
Quoted : This is a "sentence".
Press Enter to exit
*/
Aşağıdaki örnekte özel sınırlayıcı veya kaçış karakteri sağlama gösterilmektedir:
#include <iostream>
#include <iomanip>
#include <sstream>
using namespace std;
void show_custom_delimiter()
{
string inserted{ R"("This" "is" "a" "heavily-quoted" "sentence".)" };
// string inserted{ "\"This\" \"is\" \"a\" \"heavily-quoted\" \"sentence\"" };
// const char* inserted{ "\"This\" \"is\" \"a\" \"heavily-quoted\" \"sentence\"" };
stringstream ss, ss_quoted;
string extracted;
ss_quoted << quoted(inserted, '*');
ss << inserted;
cout << "ss_quoted.str() is storing: " << ss_quoted.str() << endl;
cout << "ss.str() is storing : " << ss.str() << endl << endl;
// Use the same quoted arguments as on insertion.
ss_quoted >> quoted(extracted, '*');
cout << "After round trip: " << endl;
cout << "Quoted : " << extracted << endl;
extracted = {};
ss >> extracted;
cout << "Non-quoted : " << extracted << endl << endl;
}
void show_custom_escape()
{
string inserted{ R"(\\root\trunk\branch\nest\egg\yolk)" };
// string inserted{ "\\\\root\\trunk\\branch\\nest\\egg\\yolk" };
stringstream ss, ss_quoted, ss_quoted_custom;
string extracted;
// Use '"' as delimiter and '~' as escape character.
ss_quoted_custom << quoted(inserted, '"', '~');
ss_quoted << quoted(inserted);
ss << inserted;
cout << "ss_quoted_custom.str(): " << ss_quoted_custom.str() << endl;
cout << "ss_quoted.str() : " << ss_quoted.str() << endl;
cout << "ss.str() : " << ss.str() << endl << endl;
// No spaces in this string, so non-quoted behaves same as quoted
// after round-tripping.
}
int main(int argc, char* argv[])
{
cout << "Custom delimiter:" << endl;
show_custom_delimiter();
cout << "Custom escape character:" << endl;
show_custom_escape();
// Keep console window open in debug mode.
cout << endl << "Press Enter to exit" << endl;
string input{};
getline(cin, input);
}
/* Output:
Custom delimiter:
ss_quoted.str() is storing: *"This" "is" "a" "heavily-quoted" "sentence".*
ss.str() is storing : "This" "is" "a" "heavily-quoted" "sentence".
After round trip:
Quoted : "This" "is" "a" "heavily-quoted" "sentence".
Non-quoted : "This"
Custom escape character:
ss_quoted_custom.str(): "\\root\trunk\branch\nest\egg\yolk"
ss_quoted.str() : "\\\\root\\trunk\\branch\\nest\\egg\\yolk"
ss.str() : \\root\trunk\branch\nest\egg\yolk
Press Enter to exit
*/
resetiosflags
Belirtilen bayrakları temizler.
T1 resetiosflags(ios_base::fmtflags mask);
Parametreler
mask
Temizlenmek için bayraklar.
Dönüş Değeri
Manipülatör, akışından ayıklandığında veya akışına str
eklendiğinde öğesini çağıran str.setf(ios_base::fmtflags, mask)
ve ardından , bkzsetf
. ve fmtflags
döndüren str
bir nesne döndürür.
Örnek
kullanma resetiosflags
örneği için bkzsetw
. .
setbase
Tamsayılar için taban ayarlayın.
T3 setbase(int base);
Parametreler
base
Sayı tabanı.
Dönüş Değeri
Manipülatör, akışından ayıklandığında veya akışına str
eklendiğinde öğesini çağıran str.setf(mask, ios_base::basefield)
ve ardından döndüren str
bir nesne döndürür. Bkz ios_base::basefield
. . Burada, mask
aşağıdaki gibi belirlenir:
8 ise
base
, olurmask
ios_base::oct
.10 ise
base
, maske olurios_base::dec
.16 ise
base
,mask
olurios_base::hex
.Başka bir değerse
base
, maske değeri ' olurios_base::fmtflags(0)
.
Örnek
kullanma setbase
örneği için bkzsetw
. .
setfill
Sağa yaslı bir ekranda boşlukları doldurmak için kullanılacak karakteri ayarlar.
template <class Elem>
T4 setfill(Elem Ch);
Parametreler
Ch
Sağa yaslı bir ekranda boşlukları doldurmak için kullanılacak karakter.
Dönüş Değeri
Şablon manipülatör, akışından ayıklandığında veya akışına str
eklendiğinde öğesini çağıran str.fill(Ch)
ve ardından döndüren bir nesne döndürür str
. türü Elem
, akışı str
için öğe türüyle aynı olmalıdır.
Örnek
kullanma setfill
örneği için bkzsetw
. .
setiosflags
Belirtilen bayrakları ayarlar.
T2 setiosflags(ios_base::fmtflags mask);
Parametreler
mask
Ayarlanacağı bayraklar.
Dönüş Değeri
Manipülatör, akışından ayıklandığında veya akışına str
eklendiğinde öğesini çağıran str.setf(mask)
ve ardından döndüren str
bir nesne döndürür. Bkz setf
. .
Örnek
kullanma setiosflags
örneği için bkzsetw
. .
setprecision
Kayan nokta değerleri için duyarlığı ayarlar.
T5 setprecision(streamsize Prec);
Parametreler
Prec
Kayan nokta değerleri için duyarlık.
Dönüş Değeri
Manipülatör, akışından ayıklandığında veya akışına str
eklendiğinde öğesini çağıran str.precision(Prec)
ve ardından döndüren str
bir nesne döndürür. Bkz precision
. .
Örnek
kullanma setprecision
örneği için bkzsetw
. .
setw
Akıştaki sonraki öğe için görüntüleme alanının genişliğini belirtir.
T6 setw(streamsize Wide);
Parametreler
Wide
Görüntüleme alanının genişliği.
Dönüş Değeri
Manipülatör, akışından ayıklandığında veya akışına str
eklendiğinde öğesini çağıran str.width(Wide)
ve döndüren bir nesne döndürür str
. Daha fazla bilgi için bkz. width
.
Açıklamalar
setw
yalnızca akıştaki sonraki öğenin genişliğini ayarlar ve genişliğini belirtmek istediğiniz her öğeden önce eklenmelidir.
Örnek
// iomanip_setw.cpp
// compile with: /EHsc
// Defines the entry point for the console application.
//
// Sample use of the following manipulators:
// resetiosflags
// setiosflags
// setbase
// setfill
// setprecision
// setw
#include <iostream>
#include <iomanip>
using namespace std;
const double d1 = 1.23456789;
const double d2 = 12.3456789;
const double d3 = 123.456789;
const double d4 = 1234.56789;
const double d5 = 12345.6789;
const long l1 = 16;
const long l2 = 256;
const long l3 = 1024;
const long l4 = 4096;
const long l5 = 65536;
int base = 10;
void DisplayDefault( )
{
cout << endl << "default display" << endl;
cout << "d1 = " << d1 << endl;
cout << "d2 = " << d2 << endl;
cout << "d3 = " << d3 << endl;
cout << "d4 = " << d4 << endl;
cout << "d5 = " << d5 << endl;
}
void DisplayWidth( int n )
{
cout << endl << "fixed width display set to " << n << ".\n";
cout << "d1 = " << setw(n) << d1 << endl;
cout << "d2 = " << setw(n) << d2 << endl;
cout << "d3 = " << setw(n) << d3 << endl;
cout << "d4 = " << setw(n) << d4 << endl;
cout << "d5 = " << setw(n) << d5 << endl;
}
void DisplayLongs( )
{
cout << setbase(10);
cout << endl << "setbase(" << base << ")" << endl;
cout << setbase(base);
cout << "l1 = " << l1 << endl;
cout << "l2 = " << l2 << endl;
cout << "l3 = " << l3 << endl;
cout << "l4 = " << l4 << endl;
cout << "l5 = " << l5 << endl;
}
int main( int argc, char* argv[] )
{
DisplayDefault( );
cout << endl << "setprecision(" << 3 << ")" << setprecision(3);
DisplayDefault( );
cout << endl << "setprecision(" << 12 << ")" << setprecision(12);
DisplayDefault( );
cout << setiosflags(ios_base::scientific);
cout << endl << "setiosflags(" << ios_base::scientific << ")";
DisplayDefault( );
cout << resetiosflags(ios_base::scientific);
cout << endl << "resetiosflags(" << ios_base::scientific << ")";
DisplayDefault( );
cout << endl << "setfill('" << 'S' << "')" << setfill('S');
DisplayWidth(15);
DisplayDefault( );
cout << endl << "setfill('" << ' ' << "')" << setfill(' ');
DisplayWidth(15);
DisplayDefault( );
cout << endl << "setprecision(" << 8 << ")" << setprecision(8);
DisplayWidth(10);
DisplayDefault( );
base = 16;
DisplayLongs( );
base = 8;
DisplayLongs( );
base = 10;
DisplayLongs( );
return 0;
}
default display
d1 = 1.23457
d2 = 12.3457
d3 = 123.457
d4 = 1234.57
d5 = 12345.7
setprecision(3)
default display
d1 = 1.23
d2 = 12.3
d3 = 123
d4 = 1.23e+003
d5 = 1.23e+004
setprecision(12)
default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789
setiosflags(4096)
default display
d1 = 1.234567890000e+000
d2 = 1.234567890000e+001
d3 = 1.234567890000e+002
d4 = 1.234567890000e+003
d5 = 1.234567890000e+004
resetiosflags(4096)
default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789
setfill('S')
fixed width display set to 15.
d1 = SSSSS1.23456789
d2 = SSSSS12.3456789
d3 = SSSSS123.456789
d4 = SSSSS1234.56789
d5 = SSSSS12345.6789
default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789
setfill(' ')
fixed width display set to 15.
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789
default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789
setprecision(8)
fixed width display set to 10.
d1 = 1.2345679
d2 = 12.345679
d3 = 123.45679
d4 = 1234.5679
d5 = 12345.679
default display
d1 = 1.2345679
d2 = 12.345679
d3 = 123.45679
d4 = 1234.5679
d5 = 12345.679
setbase(16)
l1 = 10
l2 = 100
l3 = 400
l4 = 1000
l5 = 10000
setbase(8)
l1 = 20
l2 = 400
l3 = 2000
l4 = 10000
l5 = 200000
setbase(10)
l1 = 16
l2 = 256
l3 = 1024
l4 = 4096
l5 = 65536