文件 *** 作的话得先包含头文件。
*** 作文件的三个流:
ofstream:写 *** 作ifstream:读 *** 作fstream:读写 *** 作 1. 文本文件 1.1 写文件步骤如下:
包含头文件创建流对象 ofstream ofs;打开文件 ofs.open(“文件路径”,打开方式);写数据 ofs << “data”;关闭文件 ofs.close();文件打开方式:
打开方式 | 解释 |
---|---|
ios::in | 为了读文件而打开文件 |
ios::out | 为了写文件而打开文件 |
ios::ate | 定位在文件尾 |
ios::app | 追加的方式写文件 |
ios::trunc | 如果文件存在先删除再创建 |
ios::binary | 二进制方式 |
打开方式可以配合使用的。
ios::binary | ios::out//以二进制方式写文件
1.2 读文件
//创建文件流对象
ifstream file(Filename.ios::in);
//判断文件是否打开,一般是判断文件是否存在的一个步骤
if(!file.is_open())
{
class="superseo">cout << "未找到文件!" << endl;
return;
}
//读取文件内容
string buf;
while(file >> buf)
{
cout << buf << endl;
}
//关闭文件
file.close();
关于读文件内容这一块,它按照什么方式读,是与我们一开始定义的数据类型有关的。
比如说,在这里变量 buf 的数据类型是 string ,因此它会在读到出现空格、换行、缩进等标志位的时候停止。
如果换成C风格字符串 char[] 的话,就有可能会出现乱码,因为char是一个字节一个字节读取的,我们需要根据编码的不同去设计C风格字符串的容量。
想要读取一行的内容还有getline函数可以使用:
string buf;
while(getline(file,buf))
{
cout << buf << endl;//在这里buf就是文件内一行的内容
}
2.二进制文件
待续
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)