C++I/O技术
1标准输入输出:
cout, cin, cerr,clog以及对应于
4个字节处理的流对象
wcout,wcin,werr,wclog。
#include <iostream>
using namespace std;
cout<<“输出 /n” ;
int i;
cin >>i; //输入
2文件输入输出:
#include <fstream.h>
#include <iostream.h>
using namespace std;
//写文件
ofstream wfile;
wfile.open("d://ni.txt",ios::out|ios::app);
if (!wfile)
{
cout<<"打开失败! "<<endl;
return;
}
wfile<<"apple"<<' '<<"苹果 "<<endl;
wfile<<"orange"<<' '<<"橘子 "<<endl;
wfile.close();
//读文件
ifstream rfile;
rfile.open("d://ni.txt",ios::in);
if (!rfile)
{
cout<<"打开失败! "<<endl;
return;
}
char temp[10],temp2[10];
wfile>>temp>>temp2;
cout<<temp<<' '<<temp2<<endl;
wfile>>temp>>temp2;
cout<<temp<<' '<<temp2<<endl;
rfile.close();
//单个字符读出
ifstream rfile;
rfile.open("d://ni.txt",ios::in|ios::binary);
if (!rfile)
{
cout<<"打开失败! "<<endl;
return;
}
char c;
while (!rfile.eof())
{
rfile.get(c);
cout<<c;
}
rfile.close();
//单个字符写入
ofstream wfile;
wfile.open("d://ni.txt",ios::out|ios::app);
if (!wfile)
{
cout<<"打开失败! "<<endl;
return;
}
char c='a';
wfile.put(c);
wfile.close();
//读取一行中的多个字符
ifstream rfile;
rfile.open("d://ni.txt",ios::in);
if (!rfile)
{
cout<<"打开失败! "<<endl;
return;
}
char temp[30];
rfile.getline(temp,20);
cout<<temp;
rfile.close();
//读取指定个数个字符
ifstream rfile;
rfile.open("d://ni.txt",ios::in);
if (!rfile)
{
cout<<"打开失败! "<<endl;
return;
}
char temp[100];
memset(temp,'/0',100);
rfile.read(temp,50);
cout<<temp<<endl;
rfile.close();
//写入指定个数个字符
ofstream wfile;
wfile.open("d://ni.txt",ios::out|ios::app);
if (!wfile)
{
cout<<"打开失败! "<<endl;
return;
}
char temp[]="welcome to beijing!";
wfile.write(temp,10);
wfile.close();
//随即写入写出
fstream rwfile;
rwfile.open("d://ni.txt",ios::in|ios::out|ios::binary|ios::trunc);
if (!rwfile)
{
cout<<"打开失败! "<<endl;
return;
}
char c;
rwfile<<"Hello my friends!";
rwfile.seekg(6,ios::beg);
rwfile.get(c);
rwfile.close();
rwfile.open("d://ni.txt",ios::in|ios::out|ios::binary|ios::trunc);
if (!rwfile)
{
cout<<"打开失败! "<<endl;
return;
}
rwfile.seekp(2,ios::beg);
rwfile<<c;
rwfile.close();
注: ios::in 以读取方式打开
ios::out 以写入方式打开
ios::app 每次写入数据时,将数据写在尾部
ios::ate 仅初始时将指正移到末尾,仍可在任意位置写入数据
ios::trunk 写入数据时,将以前文件清空,文件不存在时自动创建
ios::binary 以二进制方式打开,不做任何字符转换