cpp
#include<iostream>
#include<string>
//1:引入头文件
#include<fstream>
using namespace std;
//把程序中的信息输出到缓冲区,然后写到文件
void test01()
{
//2:定义流对象
ofstream ofs;
//3:打开文件,以写的方式打开,如果没有文件,就创建
ofs.open("test.txt", ios::out | ios::trunc);
//4:判断是否打开成功
if (!ofs.is_open())
{
cout << "打开失败" << endl;
}
//5:写信息
ofs << "姓名:灰灰" << endl;;
ofs << "年龄:20" << endl;
//6:关闭文件
ofs.close();//关闭文件,并刷新缓冲区
}
//把磁盘信息输入到缓冲区,然后读到程序中(读文件)
void test02()
{
ifstream ifs;
ifs.open("test.txt", ios::in);
if (!ifs.is_open())
{
cout << "打开失败" << endl;
}
//第一种方式读取文件
//一行一行读
/*char buf[1024] = { 0 };
while (ifs >> buf)
{
cout << buf << endl;
}*/
//第二种方式读取文件
//char buf[1024] = { 0 };
//while (!ifs.eof())//判断是否读到文件尾部
//{
// ifs.getline(buf, sizeof(buf));
// cout << buf << endl;
//}
//第三种方式,一个一个字符读
char c;
while ((c = ifs.get()) != EOF)
{
cout << c;
}
ifs.close();
}
int main()
{
test02();
system("pause");
return EXIT_SUCCESS;
}
c++的二进制读写
cpp
using namespace std;
class maker
{
public:
maker()
{
}
maker( const char*name,int age)
{
strcpy(this->name, name);
this->age = age;
}
public:
int age;
char name[64];
};
void test()
{
maker m1("huihi", 20);
maker m2("huifa",2);
ofstream ofs;
ofs.open("text.txt", ios::out |ios::trunc| ios::binary);
if (!ofs.is_open())
{
cout << "打开失败" << endl;
}
//写
ofs.write((const char*)&m1, sizeof(maker));
ofs.write((const char*)&m2, sizeof(maker));
ofs.close();
}
//读
void test02()
{
ifstream ifs;
ifs.open("text.txt", ios::in | ios::binary);
if (!ifs.is_open())
{
cout << "打开失败" << endl;
}
//读
maker m1;
maker m2;
ifs.read((char*) & m1, sizeof(maker));
ifs.read((char*)&m2, sizeof(maker));
cout << "name:" << m1.name << "age:" << m1.age << endl;
cout << "name:" << m2.name << "age:" << m2.age << endl;
}
int main()
{
test02();
system("pause");
return EXIT_SUCCESS;
}