程序的运行产生的数据都是临时数据,不能持久的保存,一旦程序运行结束数据就会被释放。
在C++中对文件进行 *** 作必须包含头文件
对文件 *** 作的类
fstream:可读可写 *** 作ifstream:只能读 *** 作ofstream:只能写 *** 作#inclass="superseo">clude
#include//包含头文件
using namespace std;
int main()
{
ofstream ofs;//创建流对象 ->往文件里写
ofs.open("123.txt");//打开文件123.txt如果没有会自动创建,
ofs << "我们可以写入文件了!";
ofs.close();//关闭文件
return 0;
}
文件ofs.open("123.txt",打开方式)
文件的打开方式
ios::in 为读文件打开方式 ios::out 为写文件打开方式ios::ate 初始位置文件尾ios::app 写文件尾追加ios::trunc 若文件存在先删除,在创建ios::binary 二进制方式打开#include
#include//包含头文件
using namespace std;
int main()
{
ofstream ofs;//创建流对象 ->往文件里写
ofs.open("123.txt",ios::app);//打开文件123.txt如果没有会自动创建,
ofs << "我们可以写入文件了!";
ofs << "啊哈!我又写了一行";//这行会追加在上一行后面
ofs.close();//关闭文件
return 0;
}
我们将文件中写好的数据读出
第一种读法
#include
#include//包含头文件
using namespace std;
int main()
{
ifstream ifs("123.txt", ios::in);//创建流对象并按指定方式打开;ifstream ifs;ifs.open("123.txt",ios::in)等价
if (!ifs.is_open())
{
cout << "文件不存在" << endl;
}
char arr[1024] = { 0 };
while (ifs >> arr)
{
cout << arr << endl;
}
ifs.close();
return 0;
}
第二种读法
#include
#include//包含头文件
using namespace std;
int main()
{
ifstream ifs("123.txt", ios::in);
if (!ifs.is_open())
{
cout << "文件不存在" << endl;
}
char arr[1024] = { 0 };
while (ifs.getline(arr, sizeof(arr)))//按行读取
{
cout << arr << endl;
}
ifs.close();
return 0;
}
第三种字符串读取
#include
#include
#include//包含头文件
using namespace std;
int main()
{
ifstream ifs("123.txt", ios::in);
if (!ifs.is_open())
{
cout << "文件不存在" << endl;
}
string arr;
while (getline(ifs, arr))
{
cout << arr << endl;
}
ifs.close();
return 0;
}
二进制读写 文件
read()它属于ifs的成员函数,读取时需要调用write()它属于ofs的成员函数,写入时需要调用#include
#include
#include//包含头文件
using namespace std;
struct student
{
string name;
int age;
};
int main()
{
ofstream ofs("12.txt", ios::out | ios::binary);
student one = { "小明",12 };
ofs.write((const char*)&one,sizeof(one));//我先将小明信息存入并关闭文件
ofs.close();
ifstream ifs("12.txt", ios::in | ios::binary);//我打开文件进行读取
if (!ifs.is_open())
{
cout << "文件不存在" << endl;
}
ifs.read(( char*)&one, sizeof(one));
cout <<"姓名:"<< one.name <<"年龄:"<< one.age << endl;
ifs.close();
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)