您的位置:首页 > 编程语言 > C语言/C++

c++io

2016-06-23 19:51 246 查看
父类函数 一般使用虚函数

析构函数也写成虚函数

#include <iostream>

using namespace std;

//输出缓冲遇到换行 有输入 满 程序结束 flush会刷新

int main()

{
cout<<"Hello";//缓冲 可以重定向
cerr<<"World";//无缓冲 不可重定向
clog<<"Tarena";//理论上缓冲 不可重定向 

}
                                                                        class ios

                                           /                                                                  \

                            iotream(cin)                                          ostream(cout cerr clog)

                  /                           \                        \                                          /            \                        \

 ifstream(文件流对象)  istringstream(字符串流对象)   iostram    ostrinstream  ofstream

                              /

                        fstream

#include <iostream>

using namespace std;

//非格式化得输出: i.get i.put i.getline() i.ignore()

//i.putback i.peek 

int main()

{
//EOF;//超越文件末尾 文件结束符
int n = cin.get();//返回ascii码 不会跳过空格 类似scanf("%c",&ch)和getchat
char c,d,e;
cin.get(c).get(d).get(e);//istream& get(char& ch)
cout<<n<<','<<c<<','<<d<<','<<e<<endl;
cout<<"===================="<<endl;
cout.put(n).put(c).put(d).put(e);
cin.ignore(200,'\n');//抛去输入缓冲区的字符最多清除200个字符 清除到换行为止
char ch;
cin>>ch;//跳过空白字符  类似scanf(" %c",&ch)
cout<<" ch= "<<ch<<endl;

}

#include <iostream>

using namespace std;

//非格式化得输出: i.get i.put i.getline() i.ignore()

//i.putback i.peek 

int main()

{
//io对象要求能转换成bool值 对处于正常状态io对象转成tr
4000
ue 反之false
cout<<"cin = "<<cin<<endl;
cout<<"cout = "<<cout<<endl;
int n;
cin>>n;
cout<<"cin = "<<cin<<endl;
cout<<&cin<<endl;
cout<<&cout<<endl;

}

#include <iostream>

#include<string>

using namespace std;

//  非格式化输入

//  i对象.getline(char,数组大小) 不能读完一整行io设置错误状态

//  getline(i对象,string&)

//  都可以用第三参数指定读到那个字符停止 默认换行

int main()

{
char buf[10];
if(!cin.getline(buf,sizeof(buf))){
cout<<"行超长度"<<endl;
cin.clear();
cin.ignore();
}
cout<<"buf="<<buf<<endl;
string s;
getline(cin,s,'~');//到~为止
cout<<"s="<<s<<endl;
sprintf("%s",s.c_str());
system("pause");

}

#include <iostream>

#include<string>

using namespace std;

//i.putback()

//i.peek() 偷看

//i.

int main()

{
char buf[100];
cin>>ws;//跳过空白字符
char c = cin.get();
/*if(cin.get()>='0'&&cin.get()<='9')
cin.get();*///不能这么写会被调用3次
cin.putback(c);//退回
if(isdigit(c)){
double d;
cin>>d;
cout<<"d="<<d<<endl;
}
else{
string s;
cin>>s;
cout<<s<<endl;
}

//cin.peek();//查看不取走 返回ascii码
if(cin.peek()=='0'&&cin.peek()=='9'){
double w;

cin>>ws>>w;
cout<<w;
}
system("pause");

}

#include <iostream>

#include<string>

#include<sstream>

using namespace std;

class Point{
int x;
int y;

public:
Point(int x,int y):x(x),y(y)
{}
friend ostream& operator<<(ostream& os,const Point& p){
os<<'('<<p.x<<','<<p.y<<')'<<endl;
return os;
}

};

int main()

{
string s="12345 6.78 x hello 234 100";
istringstream is(s);
int a,b,c;
double d;
char e;
char buf[100];
is>>a>>d>>e>>buf>>oct>>b>>hex>>c;
ostringstream os;
Point p(3,5);
os<<"a="<<a<<",b="<<b<<",c="<<c<<",d="
<<d<<",e="<<e<<",buf="<<buf<<"p="<<p<<endl;
//将这些东西合并成了一个字符串?(不太确定)
cout<<"====="<<endl;
cout<<os.str()<<endl;//输出里面的字符串
cout<<os.str()[8];
system("pause");

}

#include <iostream>

#include<string>

#include<sstream>

#include<fstream>

using namespace std;

int main()

{
string path = "lianxi.cpp";
ifstream fin(path.c_str());
ofstream fout("06PM_1.cpp");//原有内容被清空
//等同于fin.open(path.c_str);
if(!fin) {cout<<"打开fin失败"<<endl;return 1;}//return表示失败了
if(!fout) {cout<<"打开fout失败"<<endl;return 1;}
char ch;
//while(ch = fin.get()!=EOF)
while(fin.get(ch)){
cout<<ch; fout<<ch;
}

// while(fin>>ch) cout<<ch;跳过所有的空白和换行

// while(fin){fin.get(ch);fout<<ch;}//会多出一个字符 
fin.close();
fout.close();
system("pause");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: