Aracılığıyla paylaş


<string> işleçleri

operator!=
operator>
operator>>
operator>=
operator<
operator<<
operator<=
işleç+
operator==

işleç+

İki dize nesnesini birleştirir.

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+(
    const basic_string<CharType, Traits, Allocator>& left,
    const CharType* right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+(
    const basic_string<CharType, Traits, Allocator>& left,
    const CharType right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+(
    const CharType left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>&& right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+(
    const basic_string<CharType, Traits, Allocator>&& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+(
    const basic_string<CharType, Traits, Allocator>&& left,
    const basic_string<CharType, Traits, Allocator>&& right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+(
    const basic_string<CharType, Traits, Allocator>&& left,
    const CharType* right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+(
    const basic_string<CharType, Traits, Allocator>&& left,
    CharType right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>&& right);

template <class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+(
    CharType left,
    const basic_string<CharType, Traits, Allocator>&& right);

Parametreler

Sol
Birleştirilecek C stili dize veya türündeki basic_string bir nesne.

Sağ
Birleştirilecek C stili dize veya türündeki basic_string bir nesne.

Dönüş Değeri

Giriş dizelerinin birleştirilmiş hali olan dize.

Açıklamalar

sınıf şablonunun iki nesnesini sınıf basic_string birleştirmek için her aşırı yüklemeyi operator+ işlevleri. Tümü etkili bir şekilde döndürür basic_string< CharType, Traits, Allocator>(Left).append(right). Daha fazla bilgi için bkz . ekleme.

Örnek

// string_op_con.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;
   // Declaring an object of type basic_string<char>
   string s1 ( "anti" );
   string s2 ( "gravity" );
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   // Declaring a C-style string
   char *s3 = "heroine";
   cout << "The C-style string s3 = " << s3 << "." << endl;

   // Declaring a character constant
   char c1 = '!';
   cout << "The character constant c1 = " << c1 << "." << endl;

   // First member function: concatenates an  object
   // of type basic_string with an object of type basic_string
   string s12 = s1 + s2;
   cout << "The string concatenating s1 & s2 is: " << s12 << endl;

   // Second & fourth member functions: concatenate an object
   // of type basic_string with an object of C-syle string type
   string s1s3 = s1 + s3;
   cout << "The string concatenating s1 & s3 is: " << s1s3 << endl;

   // Third & fifth member functions: concatenate an object
   // of type basic_string with a character constant
   string s1s3c1 = s1s3 + c1;
   cout << "The string concatenating s1 & s3 is: " << s1s3c1 << endl;
}
The basic_string s1 = anti.
The basic_string s2 = gravity.
The C-style string s3 = heroine.
The character constant c1 = !.
The string concatenating s1 & s2 is: antigravity
The string concatenating s1 & s3 is: antiheroine
The string concatenating s1 & s3 is: antiheroine!

operator!=

İşlecin sol tarafındaki dize nesnesinin sağ taraftaki dize nesnesine eşit olup olmadığını sınar.

template <class CharType, class Traits, class Allocator>
bool operator!=(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
bool operator!=(
    const basic_string<CharType, Traits, Allocator>& left,
const CharType* right);

template <class CharType, class Traits, class Allocator>
bool operator!=(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>& right);

Parametreler

Sol
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Sağ
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Dönüş Değeri

true işlecin sol tarafındaki dize nesnesi sözcük temelli olarak sağ taraftaki dize nesnesine eşit değilse; aksi takdirde false.

Açıklamalar

Dize nesneleri arasındaki karşılaştırma, karakterlerinin çift yönlü sözcüksel karşılaştırmasını temel alır. İki dize, aynı sayıda karaktere sahipse ve ilgili karakter değerleri aynıysa eşittir. Aksi takdirde eşit değillerdir.

Örnek

// string_op_ne.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;

   // Declaring an objects of type basic_string<char>
   string s1 ( "pluck" );
   string s2 ( "strum" );
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   // Declaring a C-style string
   char *s3 = "pluck";
   cout << "The C-style string s3 = " << s3 << "." << endl;

   // First member function: comparison between left-side object
   // of type basic_string & right-side object of type basic_string
   if ( s1 != s2 )
      cout << "The strings s1 & s2 are not equal." << endl;
   else
      cout << "The strings s1 & s2 are equal." << endl;

   // Second member function: comparison between left-side object
   // of type basic_string & right-side object of C-syle string type
   if ( s1 != s3 )
      cout << "The strings s1 & s3 are not equal." << endl;
   else
      cout << "The strings s1 & s3 are equal." << endl;

   // Third member function: comparison between left-side object
   // of C-syle string type & right-side object of type basic_string
   if ( s3 != s2 )
      cout << "The strings s3 & s2 are not equal." << endl;
   else
      cout << "The strings s3 & s2 are equal." << endl;
}
The basic_string s1 = pluck.
The basic_string s2 = strum.
The C-style string s3 = pluck.
The strings s1 & s2 are not equal.
The strings s1 & s3 are equal.
The strings s3 & s2 are not equal.

operator==

İşlecin sol tarafındaki dize nesnesinin sağ taraftaki dize nesnesine eşit olup olmadığını sınar.

template <class CharType, class Traits, class Allocator>
bool operator==(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
bool operator==(
    const basic_string<CharType, Traits, Allocator>& left,
    const CharType* right);

template <class CharType, class Traits, class Allocator>
bool operator==(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>& right);

Parametreler

Sol
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Sağ
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Dönüş Değeri

true işlecin sol tarafındaki dize nesnesi sözcük temelli olarak sağ taraftaki dize nesnesine eşitse; aksi takdirde false.

Açıklamalar

Dize nesneleri arasındaki karşılaştırma, karakterlerinin çift yönlü sözcüksel karşılaştırmasını temel alır. İki dize, aynı sayıda karaktere sahipse ve ilgili karakter değerleri aynıysa eşittir. Aksi takdirde eşit değillerdir.

Örnek

// string_op_eq.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;

   // Declaring an objects of type basic_string<char>
   string s1 ( "pluck" );
   string s2 ( "strum" );
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   // Declaring a C-style string
   char *s3 = "pluck";
   cout << "The C-style string s3 = " << s3 << "." << endl;

   // First member function: comparison between left-side object
   // of type basic_string & right-side object of type basic_string
   if ( s1 == s2 )
      cout << "The strings s1 & s2 are equal." << endl;
   else
      cout << "The strings s1 & s2 are not equal." << endl;

   // Second member function: comparison between left-side object
   // of type basic_string & right-side object of C-syle string type
   if ( s1 == s3 )
      cout << "The strings s1 & s3 are equal." << endl;
   else
      cout << "The strings s1 & s3 are not equal." << endl;

   // Third member function: comparison between left-side object
   // of C-syle string type & right-side object of type basic_string
   if ( s3 == s2 )
      cout << "The strings s3 & s2 are equal." << endl;
   else
      cout << "The strings s3 & s2 are not equal." << endl;
}
The basic_string s1 = pluck.
The basic_string s2 = strum.
The C-style string s3 = pluck.
The strings s1 & s2 are not equal.
The strings s1 & s3 are equal.
The strings s3 & s2 are not equal.

operator<

İşlecin sol tarafındaki dize nesnesinin sağ taraftaki dize nesnesinden küçük olup olmadığını sınar.

template <class CharType, class Traits, class Allocator>
bool operator<(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
bool operator<(
    const basic_string<CharType, Traits, Allocator>& left,
    const CharType* right);

template <class CharType, class Traits, class Allocator>
bool operator<(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>& right);

Parametreler

Sol
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Sağ
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Dönüş Değeri

true işlecin sol tarafındaki dize nesnesi sözcük temelli olarak sağ taraftaki dize nesnesinden küçükse; aksi takdirde false.

Açıklamalar

Dizeler arasındaki sözcüksal karşılaştırma, şu kadar karaktere göre karşılaştırır:

  • Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.

  • Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.

  • Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu ve dolayısıyla dizelerin eşit olduğunu bulur.

Örnek

// string_op_lt.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;
   // Declaring an objects of type basic_string<char>
   string s1 ( "strict" );
   string s2 ( "strum" );
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   // Declaring a C-style string
   char *s3 = "strict";
   cout << "The C-style string s3 = " << s3 << "." << endl;

   // First member function: comparison between left-side object
   // of type basic_string & right-side object of type basic_string
   if ( s1 < s2 )
      cout << "The string s1 is less than the string s2." << endl;
   else
      cout << "The string s1 is not less than the string s2." << endl;

   // Second member function: comparison between left-hand object
   // of type basic_string & right-hand object of C-syle string type
   if ( s1 < s3 )
      cout << "The string s1 is less than the string s3." << endl;
   else
      cout << "The string s1 is not less than the string s3." << endl;

   // Third member function: comparison between left-hand object
   // of C-syle string type & right-hand object of type basic_string
   if ( s3 < s2 )
      cout << "The string s3 is less than the string s2." << endl;
   else
      cout << "The string s3 is not less than the string s2." << endl;
}
The basic_string s1 = strict.
The basic_string s2 = strum.
The C-style string s3 = strict.
The string s1 is less than the string s2.
The string s1 is not less than the string s3.
The string s3 is less than the string s2.

operator<=

İşlecin sol tarafındaki dize nesnesinin, sağ taraftaki dize nesnesine eşit veya ondan küçük olup olmadığını sınar.

template <class CharType, class Traits, class Allocator>
bool operator<=(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
bool operator<=(
    const basic_string<CharType, Traits, Allocator>& left,
    const CharType* right);

template <class CharType, class Traits, class Allocator>
bool operator<=(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>& right);

Parametreler

Sol
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Sağ
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Dönüş Değeri

true işlecin sol tarafındaki dize nesnesi sözcüksel olarak sağ taraftaki dize nesnesinden küçük veya buna eşitse; aksi takdirde false.

Açıklamalar

Dizeler arasındaki sözcüksal karşılaştırma, şu kadar karaktere göre karşılaştırır:

  • Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.

  • Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.

  • Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu, dolayısıyla dizelerin eşit olduğunu bulur.

Örnek

// string_op_le.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;

   // Declaring an objects of type basic_string<char>
   string s1 ( "strict" );
   string s2 ( "strum" );
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   // Declaring a C-style string
   char *s3 = "strict";
   cout << "The C-style string s3 = " << s3 << "." << endl;

   // First member function: comparison between left-side object
   // of type basic_string & right-side object of type basic_string
   if ( s1 <= s2 )
      cout << "The string s1 is less than or equal to "
           << "the string s2." << endl;
   else
      cout << "The string s1 is greater than "
           << "the string s2." << endl;

   // Second member function: comparison between left-side object
   // of type basic_string & right-side object of C-syle string type
   if ( s1 <= s3 )
      cout << "The string s1 is less than or equal to "
           << "the string s3." << endl;
   else
      cout << "The string s1 is greater than "
           << "the string s3." << endl;

   // Third member function: comparison between left-side object
   // of C-syle string type  & right-side object of type basic_string
   if ( s2 <= s3 )
      cout << "The string s2 is less than or equal to "
           << "the string s3." << endl;
   else
      cout << "The string s2 is greater than "
           << "the string s3." << endl;
}
The basic_string s1 = strict.
The basic_string s2 = strum.
The C-style string s3 = strict.
The string s1 is less than or equal to the string s2.
The string s1 is less than or equal to the string s3.
The string s2 is greater than the string s3.

operator<<

Çıkış akışına bir dize yazan şablon işlevi.

template <class CharType, class Traits, class Allocator>
basic_ostream<CharType, Traits>& operator<<(
    basic_ostream<CharType, Traits>& _Ostr,
    const basic_string<CharType, Traits, Allocator>& str);

Parametreler

_Ostr
Yazılmakta olan çıkış akışı.

str
Çıkış akışına girilecek dize.

Dönüş Değeri

Belirtilen dizenin değerini çıkış akışına _Ostr yazar.

Açıklamalar

Şablon işlevi, akış _Ostr sınıf şablonu basic_string nesne str'ini eklemek için işleci<< aşırı yükler. işlevi etkin bir şekilde döndürür _Ostr.write( str.c_str, str.size ).

operator>

İşlecin sol tarafındaki dize nesnesinin sağ taraftaki dize nesnesinden büyük olup olmadığını sınar.

template <class CharType, class Traits, class Allocator>
bool operator>(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
bool operator>(
    const basic_string<CharType, Traits, Allocator>& left,
    const CharType* right);

template <class CharType, class Traits, class Allocator>
bool operator>(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>& right);

Parametreler

Sol
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Sağ
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Dönüş Değeri

true işlecin sol tarafındaki dize nesnesi sözcüksel olarak sağ taraftaki dize nesnesinden daha büyükse; aksi takdirde false.

Açıklamalar

Dizeler arasındaki sözcüksal karşılaştırma, şu kadar karaktere göre karşılaştırır:

  • Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.

  • Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.

  • Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu ve dolayısıyla dizelerin eşit olduğunu bulur.

Örnek

// string_op_gt.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;

   // Declaring an objects of type basic_string<char>
   string s1 ( "strict" );
   string s2 ( "strum" );
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   // Declaring a C-style string
   char *s3 = "stricture";
   cout << "The C-style string s3 = " << s3 << "." << endl;

   // First member function: comparison between left-side object
   // of type basic_string & right-side object of type basic_string
   if ( s1 > s2 )
      cout << "The string s1 is greater than "
           << "the string s2." << endl;
   else
      cout << "The string s1 is not greater than "
           << "the string s2." << endl;

   // Second member function: comparison between left-side object
   // of type basic_string & right-side object of C-syle string type
   if ( s3 > s1 )
      cout << "The string s3 is greater than "
           << "the string s1." << endl;
   else
      cout << "The string s3 is not greater than "
           << "the string s1." << endl;

   // Third member function: comparison between left-side object
   // of C-syle string type & right-side object of type basic_string
   if ( s2 > s3 )
      cout << "The string s2 is greater than "
           << "the string s3." << endl;
   else
      cout << "The string s2 is not greater than "
           << "the string s3." << endl;
}
The basic_string s1 = strict.
The basic_string s2 = strum.
The C-style string s3 = stricture.
The string s1 is not greater than the string s2.
The string s3 is greater than the string s1.
The string s2 is greater than the string s3.

operator>=

İşlecin sol tarafındaki dize nesnesinin sağ taraftaki dize nesnesinden büyük veya buna eşit olup olmadığını sınar.

template <class CharType, class Traits, class Allocator>
bool operator>=(
    const basic_string<CharType, Traits, Allocator>& left,
    const basic_string<CharType, Traits, Allocator>& right);

template <class CharType, class Traits, class Allocator>
bool operator>=(
    const basic_string<CharType, Traits, Allocator>& left,
    const CharType* right);

template <class CharType, class Traits, class Allocator>
bool operator>=(
    const CharType* left,
    const basic_string<CharType, Traits, Allocator>& right);

Parametreler

Sol
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Sağ
Karşılaştırılacak C stili dize veya türünde basic_string bir nesne.

Dönüş Değeri

true işlecin sol tarafındaki dize nesnesi sözcüksel olarak sağ taraftaki dize nesnesinden büyük veya buna eşitse; aksi takdirde false.

Açıklamalar

Dizeler arasındaki sözcüksal karşılaştırma, şu kadar karaktere göre karşılaştırır:

  • Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.

  • Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.

  • Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu ve dolayısıyla dizelerin eşit olduğunu bulur.

Örnek

// string_op_ge.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;

   // Declaring an objects of type basic_string<char>
   string s1 ( "strict" );
   string s2 ( "strum" );
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   // Declaring a C-style string
   char *s3 = "stricture";
   cout << "The C-style string s3 = " << s3 << "." << endl;

   // First member function: comparison between left-side object
   // of type basic_string & right-side object of type basic_string
   if ( s1 >= s2 )
      cout << "The string s1 is greater than or equal to "
           << "the string s2." << endl;
   else
      cout << "The string s1 is less than "
           << "the string s2." << endl;

   // Second member function: comparison between left-side object
   // of type basic_string & right-side object of C-syle string type
   if ( s3 >= s1 )
      cout << "The string s3 is greater than or equal to "
           << "the string s1." << endl;
   else
      cout << "The string s3 is less than "
           << "the string s1." << endl;

   // Third member function: comparison between left-side object
   // of C-syle string type & right-side object of type basic_string
   if ( s2 >= s3 )
      cout << "The string s2 is greater than or equal to "
           << "the string s3." << endl;
   else
      cout << "The string s2 is less than "
           << "the string s3." << endl;
}
The basic_string s1 = strict.
The basic_string s2 = strum.
The C-style string s3 = stricture.
The string s1 is less than the string s2.
The string s3 is greater than or equal to the string s1.
The string s2 is greater than or equal to the string s3.

operator>>

Giriş akışından bir dize okuyan şablon işlevi.

template <class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& operator>>(
    basic_istream<CharType, Traits>& _Istr,
    basic_string<CharType, Traits, Allocator>& right);

Parametreler

_Istr
Diziyi ayıklamak için kullanılan giriş akışı

Sağ
Giriş akışından ayıklanan dize.

Dönüş Değeri

Belirtilen dizenin değerini _Istr okur ve sağa döndürür.

Açıklamalar

işleci, bayrak ayarlanmadığı sürece baştaki skipws boşlukları atlar. Sonraki karakter boşluk olana veya dosyanın sonuna ulaşılana kadar aşağıdaki karakterlerin tümünü okur.

Şablon işlevi, sağ tarafından denetlenen sırayı akış _Istr ayıklanan öğe dizisiyle değiştirmek için işleci>> aşırı yükler. Ayıklama durdurulur:

  • Dosyanın sonunda.

  • İşlev ayıkladıktan _Istrsonra. bu değer sıfır olmayan genişlik öğeleridir.

İşlev ayıkladıktan _Istrsonra. öğeleri max_size.

  • İşlev, ctype<CharType>>( getloc) use_facet<bir öğe ch ayıkladıktan sonra. is( ctype<CharType>:: space, ch) true değeridir ve bu durumda karakter geri alınır.

İşlev hiçbir öğe ayıklamazsa setstate() çağrısında bulunurios_base::failbit. Her durumda istr'i çağırır. width(0) ve * thisdöndürür.

Örnek

// string_op_read_.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;

   string c0;
   cout << "Input a string c0 ( try: Fibonacci numbers ): ";
   cin >> c0;
   cout << "The string entered is c0 = " << c0 << endl;
}

Ayrıca bkz.

<string>