2017-11-18 20 views
2

正確にどのcinが知りたいですか。私は関数またはクラスを意味します....cinのデータ型とは何ですか

私たちが使う方法としての関数ではないと確信しています。

これには、クラスやオブジェクトなどのオプションがあります。

正確には何ですか?ヘッダは、によって提供 標準Cストリームにオブジェクトを関連付けるオブジェクトを宣言P1

+1

インターネットはcin'は 'istream'クラス型のオブジェクトである' ...あなたの友達です。あなたのお気に入りの検索エンジンで 'type of cin'を試してみてください! –

答えて

3

cinオブジェクトistreamクラスの

+0

* 'iostream'ではなく' istream'です。 –

+0

'iostream'ではありません。それは 'istream'の目的です。 –

4

C++標準§27.4.1 [iostream.objects.overview]

#include <ios> 
#include <streambuf> 
#include <istream> 
#include <ostream> 

namespace std { 
    extern istream cin; 
    extern ostream cout; 
    extern ostream cerr; 
    extern ostream clog; 
    extern wistream wcin; 
    extern wostream wcout; 
    extern wostream wcerr; 
    extern wostream wclog; 
} 

あります (27.9.2)で宣言された関数で、使用に必要なすべてのヘッダーが含まれていますこれらの オブジェクト。

また、GCCのimplementation on githubを見てみましょうことがあります。

namespace std _GLIBCXX_VISIBILITY(default) 
{ 
_GLIBCXX_BEGIN_NAMESPACE_VERSION 

    // Standard stream objects. 
    // NB: Iff <iostream> is included, these definitions become wonky. 
    typedef char fake_istream[sizeof(istream)] 
    __attribute__ ((aligned(__alignof__(istream)))); 
    typedef char fake_ostream[sizeof(ostream)] 
    __attribute__ ((aligned(__alignof__(ostream)))); 
    fake_istream cin; 
    fake_ostream cout; 
    fake_ostream cerr; 
    fake_ostream clog; 

#ifdef _GLIBCXX_USE_WCHAR_T 
    typedef char fake_wistream[sizeof(wistream)] 
    __attribute__ ((aligned(__alignof__(wistream)))); 
    typedef char fake_wostream[sizeof(wostream)] 
    __attribute__ ((aligned(__alignof__(wostream)))); 
    fake_wistream wcin; 
    fake_wostream wcout; 
    fake_wostream wcerr; 
    fake_wostream wclog; 
#endif 

_GLIBCXX_END_NAMESPACE_VERSION 
} // namespace 
関連する問題