浅谈cin与cout
今天开始看了c++ ,第一章看到说cin.get()可以这样用,我猜测:那这样不就是说明cin是一个对象吗,然后调用他的iostream的类中的get函数
于是我试图找到iostream.h这个头文件,找啊找,找啊找,没找到我想要的cin这个声明对象。
于是看到#inlcude <istream.h>
终于在这个头文件中找到了
class _CRTIMP istream : virtual public ios {
public:
istream(streambuf*);
virtual ~istream();
int ipfx(int =0);
void isfx() { unlockbuf(); unlock(); }
inline istream& operator>>(istream& (__cdecl * _f)(istream&));
inline istream& operator>>(ios& (__cdecl * _f)(ios&));
istream& operator>>(char *);
inline istream& operator>>(unsigned char *);
inline istream& operator>>(signed char *);
istream& operator>>(char &);
inline istream& operator>>(unsigned char &);
inline istream& operator>>(signed char &);
istream& operator>>(short &);
istream& operator>>(unsigned short &);
istream& operator>>(int &);
istream& operator>>(unsigned int &);
istream& operator>>(long &);
istream& operator>>(unsigned long &);
istream& operator>>(float &);
istream& operator>>(double &);
istream& operator>>(long double &);
istream& operator>>(streambuf*);
int get();
inline istream& get( char *,int,char ="
");
inline istream& get(unsigned char *,int,char ="
");
inline istream& get( signed char *,int,char ="
");
istream& get(char &);
inline istream& get(unsigned char &);
inline istream& get( signed char &);
istream& get(streambuf&,char ="
");
inline istream& getline( char *,int,char ="
");
inline istream& getline(unsigned char *,int,char ="
");
inline istream& getline( signed char *,int,char ="
");
inline istream& ignore(int =1,int =EOF);
istream& read(char *,int);
inline istream& read(unsigned char *,int);
inline istream& read(signed char *,int);
int gcount() const { return x_gcount; }
int peek();
istream& putback(char);
int sync();
istream& seekg(streampos);
istream& seekg(streamoff,ios::seek_dir);
streampos tellg();
void eatwhite();
extern _CRTIMP istream_withassign cin;
这个是public中的代码,也就是说
在我们调用iostream的时候,iostream中会包含istream和ostream
又因为操作运算符》重载 以及 get()等函数也在public中,并且cin对象为extern
所以我们才可以直接输入或者输出 ,或者调用一些函数,比如 cin.get()
istream& operator>>(char *);
inline istream& operator>>(unsigned char *);
inline istream& operator>>(signed char *);
istream& operator>>(char &);
inline istream& operator>>(unsigned char &);
inline istream& operator>>(signed char &);
istream& operator>>(short &);
istream& operator>>(unsigned short &);
istream& operator>>(int &);
istream& operator>>(unsigned int &);
istream& operator>>(long &);
istream& operator>>(unsigned long &);
istream& operator>>(float &);
istream& operator>>(double &);
istream& operator>>(long double &);
istream& operator>>(streambuf*);
从这里大家也看到了,为什么说cin和cout可以不管后者的变量的类型,可以直接输入或输出,而不用像scanf和printf那样繁琐
他把每种类型都包含进去了。至于什么是istream& 这些东西我不懂,我只是这样猜测的。
^_^望大神给予指导
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: C++输入与输出—cout和cin的用法
- 下一篇: C++中cin,cout,以及返回值
