Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
<iomanip>
Üst bilgi aşağıdaki işlevleri sağlar:
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 formatted input function
ile get
ilişkilendirilmiş yerel ayar modelinde money_get
üye işlevini str
çağıran bir use_intl
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 long double
türünde basic_string
veya örneği str
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ş formatted input function
yerel ayar modelinde get
üye işlevini time_get
çağıran bir str
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 put
ilişkilendirilmiş yerel ayar modelinde money_put
üye işlevini çağıran biçimlendirilmiş bir çıkış işlevi str
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 long double
türünde basic_string
veya örneği str
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 put
ilişkilendirilmiş yerel ayar modelinde time_put
üye işlevini str
çağırır. Çıkış işlevi, zaman yapısını belirtmek ve time_ptr
null ile sonlandırılan biçim dizesinin başlangıcını belirtmek için kullanırtime_format
. 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 , bkzstr
. ve setf
döndüren fmtflags
bir nesne döndürür.
Örnek
kullanma setw
örneği için bkzresetiosflags
. .
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 setw
örneği için bkzsetbase
. .
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 setw
örneği için bkzsetfill
. .
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 setw
örneği için bkzsetiosflags
. .
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 setw
örneği için bkzsetprecision
. .
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