C++文件读写
来源:互联网 发布:淘宝客服这工作怎么样 编辑:程序博客网 时间:2024/05/17 09:15
打开文件是指在文件读写之前做必要的准备工作,包括:
1.位文件流对象和指定的磁盘文件建立关联,以便使文件流流向指定的磁盘文件。2.指定文件的工作方式。
在C++中,代开文件可以用两种方法实现
1.调用文件流的成员函数
2.在定义文件流对象时指定参数
文件输入输出方式设置
方式
作用
ios::in
以输入方式打开文件
ios::out
以输出方式打开文件
ios::app
以输出方式打开文件,写入的数据添加在文件末尾
ios::ate
打开一个已有的文件,文件指针指向文件末尾
ios::trunc
打开一个文件,如果文件存在,则删除其中的所有数据,如果不存在,建立新文件。如指定ios::out方式,而未指定ios::ate,ios::in则同时默认此方式
ios::binary
以二进制方式打开一个文件,如不指定此方式则默认为ASCII方式
ios::noreplace
如果文件不存在,则新建文件,如果文件已存在,则打开失败
ios::in ios::out
以输入输出方式打开,文件可读可写
ios::out ios::binary
以二进制方式打开一个输出文件
ios::in ios::binary
以二进制方式打开一个输入文件
ios::nocreate
打开一个已有文件,如果文件不存在,则打开失败
关闭文件
在对已打开的磁盘文件的读写操作完成后,应关闭该文件。关闭文件用成员函数close。所谓关闭,实际上是解除该磁盘文件与文件流的关联,原来设置的工作方式也失效,这样,就不能通过文件流对该文件进行操作。
void test()//C++文件ASCII文件的读写操作
{
char* filename = "abc.txt";
ifstream ism;//创建文件输入流对象
ofstream osm;//创建文件输出流对象
osm.open(filename, ios::out);//ios::out由程序向文件输出
if (!osm)
{
cout << "osm open err" << endl;
return;
}
else
{
cout << "osm open success" << endl;
}
osm << "98765432d1" << endl;
osm << "jkdafkj" << endl;
osm.close();
ism.open(filename, ios::in);//ios::in,由文件向程序输入
if (!ism)
{
cout << "ism open err" << endl;
return;
}
else
{
cout << "ism open success" << endl;
}
char buf[1024] = { 0 };
ism.getline(buf, 1024);
cout << buf << endl;
memset(buf, 0, 1024);
ism.getline(buf, 1024);
ism.close();
}
class Info
{
public:
char name[30];
int age;
Info(char* name,int age)
{
strcpy(this->name,name);
this->age = age;
}
Info() {};
};
void test1()//二进制文件读写用成员函数read,write
{
Info inf1("liming", 20), inf2("wanghong", 19);
char* filename = "binary.txt";
ifstream ism;ofstream osm;
osm.open(filename, ios::out);
osm.write((const char*)(&inf1), sizeof(Info));//向文件写入
osm.write((const char*)(&inf2), sizeof(Info));
osm.close();
Info inf3;
ism.open(filename, ios::in);
ism.read((char*)(&inf3), sizeof(Info));//从文件读出
cout << inf3.age << "\n" << inf3.name << endl;
}
- 【C/C++】文件读写
- c语言读写文件
- 文件读写(c)
- C#-读写INI文件
- [C++]文件读写操作
- C#读写INI文件
- C 读写文件
- C读写ini文件
- c#FileStream文件读写
- 读写文件 c
- WinAPI C读写文件?
- C语言读写文件
- 文件读写(C++)
- c中的文件读写
- C文件读写
- c读写文件
- c读写Exc文件
- C/C++ 读写文件
- StringBuffer 的使用
- 我的机器学习之路-决策树
- 大型网站架构技术总结
- Java-字符转码
- EasyUI+Hibernate实现表格多层属性本地列排序、搜索过滤功能
- C++文件读写
- Java虚拟机学习笔记(4)——内存分配与回收策略
- 机器学习目录结构
- shell高级变量操作
- 指针函数的局部变量
- Linux 下挂载硬盘,并开机自动挂载
- Linux中文件描述符与FILE结构体
- Codeforces Round #411 (Div. 1) D. Expected diameter of a tree(树的直径)
- HashMap详解