C++的 iostream
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
库介绍
---------------转制 www.cndev-lab.com
|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| 本文制作: terry tong email: terrcy.j@126.com
|//本文所有源码注明:
|//程序作者:管宁
|//站点:www.cndev-lab.com
|//所有稿件均有版权,如要转载,请务必著名出处和作者
|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我们从一开始就一直在利用 C++的输入输出在做着各种练习,输入输出是由
iostream 库提供的,所以讨论此标准库是有必要的,它与 C语言的 stdio 库不
同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一
个 c++的标准库组件提供给程序员使用。
iostream 为内置类型类型对象提供了输入输出支持,同时也支持文件的输
入输出,类的设计者可以通过对 iostream 库的扩展,来支持自定义类型的输入
输出操作。
为什么说要扩展才能提供支持呢?我们来一个示例。
#include
#include
using namespace std;
class Test
{
public:
Test(int a=0,int b=0)
{
Test::a=a;
Test::b=b;
}
int a;
int b;
};
int main()
{
Test t(100,50);
printf("%???",t);//不明确的输出格式
scanf("%???",t);//不明确的输入格式
cout<>t;//同样不够明确
system("pause");
}
由于自定义类的特殊性,在上面的代码中,无论你使用 c风格的输入输出,
或者是 c++的输入输出都不是不明确的一个表示,由于 c语言没有运算符重载机
制,导致 stdio 库的不可扩充性,让我们无法让 printf()和 scanf()支持对自定
义类对象的扩充识别,而 c++是可以通过运算符重载机制扩充 iostream 库的,
使系统能能够识别自定义类型,从而让输入输出明确的知道他们该干什么,格式
是什么。
在上例中我们之所以用 printf 与 cout 进行对比目的是为了告诉大家,C与
C++处理输入输出的根本不同,我们从 c远的输入输出可以很明显看出是函数调
用方式,而 c++的则是对象模式,cout 和 cin 是 ostream 类和 istream 类的对
象。
C++中的 iostream 库主要包含下图所示的几个头文件:
我们所熟悉的输入输出操作分别是由 istream(输入流)和 ostream(输出流)
这两个类提供的,为了允许双向的输入/输出,由 istream 和 ostream 派生出了
iostream 类。
类的继承关系见下图:
iostream库定义了以下三个标准流对象:
1.cin,表示标准输入(standard input)的istream类对象。cin使我们可以从设备读如数据。
2.cout,表示标准输出(standard output)的ostream类对象。cout使我们可以向设备输出或
者写数据。
3.cerr,表示标准错误(standard error)的osttream类对象。cerr是导出程序错误消息的地方,
它只能允许向屏幕设备写数据。
输出主要由重载的左移操作符(<<)来完成,输入主要由重载的右移操作符(>>)完成。
>>a表示将数据放入a对象中。
<
using namespace std;
int main()
{
ofstream myfile("c:\\1.txt",ios::out|ios::trunc,0);
myfile<<"中国软件开发实验室"<
#include
using namespace std;
int main()
{
ofstream myfile("c:\\1.txt",ios::app,0);
if(!myfile)//或者写成 myfile.fail()
{
cout<<"文件打开失败,目标文件状态可能为只读!";
system("pause");
exit(1);
}
myfile<<"中国软件开发实验室"<
#include
using namespace std;
int main()
{
ofstream myfile;
myfile.open("c:\\1.txt",ios::out|ios::app,0);
if(!myfile)//或者写成 myfile.fail()
{
cout<<"文件创建失败,磁盘不可写或者文件为只读!";
system("pause");
exit(1);
}
myfile<<"中国软件开发实验室"<
#include
#include
using namespace std;
int main()
{
ifstream myfile;
myfile.open("c:\\1.txt",ios::in,0);
if(!myfile)
{
cout<<"文件读错误";
system("pause");
exit(1);
}
char ch;
string content;
while(myfile.get(ch))
{
content+=ch;
cout.put(ch);//cout<
#include
using namespace std;
int main()
{
fstream myfile;
myfile.open("c:\\1.txt",ios::out|ios::app,0);
if(!myfile)
{
cout<<"文件写错误,文件属性可能为只读!"<
#include
using namespace std;
int main()
{
char *name = "www.cndev-lab.com";
int arraysize = strlen(name)+1;
istrstream is(name,arraysize);
char temp;
is>>temp;
cout<
#include
using namespace std;
int main()
{
int arraysize=1;
char *pbuffer=new char[arraysize];
ostrstream ostr(pbuffer,arraysize,ios::out);
ostr<
本文档为【iostream】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。