Aracılığıyla paylaş


<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 strayıklandığında, uluslararası biçimi belirtmek için kullanarak use_intl ile striliş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.

Moneyile aynı öğe ve özellik parametreleriyle strtü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 strayıklandığında, ile ilişkilendirilmiş stryerel 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 streklendiğinde ile striliş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.

Moneyile aynı öğe ve özellik parametreleriyle strtü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 streklendiğinde olarak davranan bir formatted output functionnesnesi döndürür. Çıkış işlevi, ile striliş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::wstringwchar_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 streklendiğinde öğesini çağıran str.setf(ios_base::fmtflags, mask)ve ardından , bkzsetf. ve fmtflagsdöndüren strbir 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 streklendiğinde öğesini çağıran str.setf(mask, ios_base::basefield)ve ardından döndüren strbir nesne döndürür. Bkz ios_base::basefield. . Burada, mask aşağıdaki gibi belirlenir:

Ö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 streklendiğinde öğesini çağıran str.fill(Ch)ve ardından döndüren bir nesne döndürür str. türü Elem , akışı striç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 streklendiğinde öğesini çağıran str.setf(mask)ve ardından döndüren strbir 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 streklendiğinde öğesini çağıran str.precision(Prec)ve ardından döndüren strbir 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 streklendiğ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

Ayrıca bkz.

<iomanip>