网站刷排名工具,上海网站建设sheji021,全国电子商务公共服务网,vue做网站如何优化seo停电一天之后#xff0c;今天还有什么理由不学习呜呜……还是没怎么学习
一#xff0c;文件操作
文件操作可以将数据持久化#xff0c;对文件操作时须包含头文件fstream 两种文件类型#xff1a;文本文件#xff1a;文件以文本的ASCII码形式存储#xff1b;二进…停电一天之后今天还有什么理由不学习呜呜……还是没怎么学习
一文件操作
文件操作可以将数据持久化对文件操作时须包含头文件fstream 两种文件类型文本文件文件以文本的ASCII码形式存储二进制文件文件以文本的二进制形式存储 操作文件三大类ofstream 写操作ifsream读操作 fstream读写操作
1.1 文本文件
1.1.1 写文件
包含头文件#include fstream——创建流对象ofs.open(文件路径”打开方式——写数据ofs写入的数据——关闭文件ofs.close();打开方式 ios::in 为读文件而打开文件 ios::out 为写文件而打开文件 ios::ate 初始位置文件尾 ios::app 追加方式写文件 ios::trunc 如果文件存在先删除再创建 ios::binary 二进制方式 注意| 操作符配合使用文件打开方式IOS::BINARY | IOS::OUT——用二进制方式写文件未指定完整文件夹路径默认和源文件一起
#include iostream
#include fstream
using namespace std;void test01() {//创建流对象ofstream ofs;//指定打开方式 “文件路径”打开方式ofs.open(test.txt, ios::out);//写内容ofs 姓名 张三 endl;ofs 性别男 endl;ofs 年龄18 endl;//关文件ofs.close();
}
int main() {test01();system(pause);return 0;
}
1.1.2 读文件
包含头文件#include fstream——创建流对象ifstream ifs——打开并判断文件是否打开成功 ifs .open (文件路径打开方式)——读数据【四种方式读取】——关闭文件 ifs.close();
字符数组while (ifs buff) 字符数组while (ifs.getline(buff2, sizeof(buff2))) 字符串【这里不可以省略string】while (getline (ifs,buff3)) 单个字符while ((c ifs.get()) ! EOF)
#include iostream
#includestring
#include fstream
using namespace std;void test01() {ifstream ifs;ifs.open(test.txt, ios::in);if (!ifs.is_open()) { //is_open()bool类型取反cout 文件打开失败 endl;return; //失败不继续进行}//读数据 第一种 输出上比其他多了一个换行符不懂char buff[1024] { 0 };//字符数组while (ifs buff) { //文件写入BUFF没有数据的时候循环结束cout buff endl;}//第二种//char buff2[1024] { 0 };//while (ifs.getline(buff2, sizeof(buff2))) {//GETLINE获取一行char*首地址count最多读几个字节数【数组大小】// cout buff2 endl;//}//都不注释也只输出一次不懂//第三种//string buff3;基础的输入流,GETLINE基础的输入流需要输入流对象IFS准备好的字符串//while (getline (ifs,buff3)) { //未定义标识符getline不懂// cout buff3 endl;//}//失败——加上string头文件//第四种C,不常用效率低/*char c;while ((c ifs.get()) ! EOF) {cout c;}*/ifs.close();
}
int main() {test01();system(pause);return 0;
}
1.2 二进制文件
打开要指定为ios::binary
1.2.1 写文件
二进制写文件主要利用流对象调用成员函数WRITE函数原型ostream write ( const char* bufferint len解释字符指针buffer指向内存中的一段存储空间len是读写的字节数 二进制读入的文件会乱码只要正确读入就不影响
#include iostream
#includestring
#include fstream
using namespace std;
class Person {
public:char m_Name[64];//尽量用C的字符数组STRING容易出现问题int m_Age;
};void test01() {ofstream ofs;//打开头文件ofs.open(person.txt, ios::out | ios::binary);Person p { 王五,78 };//对P取地址返回Person性质的地址强制转换成CHAR*ofs.write((const char*)p, sizeof(Person));ofs.close();
}
int main() {test01();system(pause);return 0;
}
1.2.2 读文件
二进制读文件主要利用流对象调用成员函数READ函数原型istream read ( const char* bufferint len解释字符指针buffer指向内存中的一段存储空间len是读写的字节数
#include iostream
#includestring
#include fstream
using namespace std;
class Person {
public:char m_Name[64];//尽量用C的字符数组STRING容易出现问题int m_Age;
};void test01() {ifstream ofs;//打开头文件ofs.open(person.txt, ios::in | ios::binary);if (!ofs.is_open()) {cout 打开失败 endl;return;}//读文件Person p;ofs.read((char*)p, sizeof(Person));//输出数据cout 姓名 p.m_Name \t年龄 p.m_Age endl;ofs.close();
}
int main() {test01();system(pause);return 0;
}