做笑话网站,网站建设企业模板哪家好,广西建设厅网站是什么,怎么管理网站C中对文件操作需要包含头文件 fstream 文件类型分为两种#xff1a; 1 . 文本文件 - 文件以文本的**ASCII码**形式存储在计算机中 2 . 二进制文件 - 文件以文本的**二进制**形式存储在计算机中#xff0c;用户一般不能直接读懂它们 操作文件的三大类: 1 . ofstream…C中对文件操作需要包含头文件 fstream 文件类型分为两种 1 . 文本文件 - 文件以文本的**ASCII码**形式存储在计算机中 2 . 二进制文件 - 文件以文本的**二进制**形式存储在计算机中用户一般不能直接读懂它们 操作文件的三大类: 1 . ofstream写操作 2 . ifstream 读操作 3 . fstream 读写操作
1.文本文件
写文件
写文件步骤如下 1 . 包含头文件
#includefstream
2 . 创建流对象 ofstream ofs; 3 . 打开文件 ofs.open(文件路径,打开方式); 4 . 写数据 ofs 写入的数据; 5 . 关闭文件 ofs.close();
文件打开方式
文件打开方式 ios::in 为读文件而打开文件 ios::out 为写文件而打开文件 ios::ate 初始位置文件尾 ios::app 追加方式写文件 ios::trunc 如果文件存在先删除再创建 ios::binary 二进制方式 注意 文件打开方式可以配合使用利用|操作符 例如用二进制方式写文件 ios::binary | ios:: out
读文件
读文件与写文件步骤相似但是读取方式相对于比较多 读文件步骤如下 1 . 包含头文件 #include 2 . 创建流对象 ifstream ifs; 3 . 打开文件并判断文件是否打开成功 ifs.open(文件路径,打开方式); 4 . 读数据 四种方式读取 5 . 关闭文件 ifs.close();
#includeiostream
#includefstream
#includestring
using namespace std;
int main() {
// ofstream outFile;
// outFile.open(./123test.txt,ios::out);
// outFileHello World!endl;
// outFileWelcome to C Programming!endl;
// outFile.close();
// coutFile written successfully!endl;ifstream inFile;inFile.open(./123test.txt,ios::in);if(!inFile.is_open()){coutError! File not found!endl;}char c[1024];while(inFile.getline(c,sizeof(c))){coutc;}return 0;
}读文件的方式有很多
//第一种方式
//char buf[1024] { 0 };
//while (ifs buf)
//{
// cout buf endl;
//}
//第二种
//char buf[1024] { 0 };
//while (ifs.getline(buf,sizeof(buf)))
//{
// cout buf endl;
//}
//第三种
//string buf;
//while (getline(ifs, buf))//{
// cout buf endl;
//}
char c;
while ((c ifs.get()) ! EOF)
{
cout c;
}
ifs.close();
总结 ● 读文件可以利用 ifstream 或者fstream类 ● 利用is_open函数可以判断文件是否打开成功 ● close 关闭文件
2.二进制文件
写文件
以二进制的方式对文件进行读写操作 打开方式要指定为 ios::binary
二进制方式写文件主要利用流对象调用成员函数write 函数原型 ostream write(const char * buffer,int len); 参数解释字符指针buffer指向内存中一段存储空间。len是读写的字节数
#includeiostream
#includefstream
#includestring
using namespace std;
class Person{public:char name[20];int age;
};
int main() {
// 1.引入头文件
// 2.创建输出流对象ofstream ofs(Person.txt, ios::out | ios::binary);
// 或者 ofstream ofs;
// ofs.open(Person.txt, ios::out | ios::binary);
// 3.创建对象Person p{David, 25};
// 4.写入文件ofs.write((const char *)p, sizeof(p));
// 5.关闭文件ofs.close();return 0;
}读文件
二进制方式读文件主要利用流对象调用成员函数read 函数原型 istream read(char *buffer,int len); 参数解释字符指针buffer指向内存中一段存储空间。len是读写的字节数
#includeiostream
#includefstream
#includestring
using namespace std;
class Person{public:char name[20];int age;
};
int main() {1.引入头文件2.创建输出流对象
// ofstream ofs(Person.txt, ios::out | ios::binary);或者 ofstream ofs;ofs.open(Person.txt, ios::out | ios::binary);3.创建对象
// Person p{David, 25};4.写入文件
// ofs.write((const char *)p, sizeof(p));5.关闭文件
// ofs.close();// 1.引入头文件
// 2.创建输入流对象ifstream ifs(Person.txt, ios::in | ios::binary);if(!ifs.is_open()){cout文件打开失败endl;return 0;}
// 3.创建对象Person p;
// 4.读取文件ifs.read((char *)p,sizeof(p));
// 5.关闭文件cout姓名p.name 年龄p.ageendl;ifs.close();return 0;
}文件输入流对象 可以通过read函数以二进制方式读数据