1008文本文件02二进制文件写操作

96 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

3.把文件的数据读到我们程序中去

  • 第二种方法:
  • getline获取一行的意思,有两个参数,第一个参数是地址,即数据放的首地址,第二个是读取到多少个字节结束。
//第二种
	char a[1024] = { 0 };
	while (ifs.getline(a,sizeof(a)))
	{
		cout << a << endl;
	}

输出:

文件打开成功 姓名:侯舒婷 性别:女 年龄:18 请按任意键继续. . .

  • 第三种方式:
  • 这时候getline是全局函数,要两个参数,第一个参数:基础的输入流,我们这个是文件输入流即:ifs,第二个是准备好的字符串
//第三种
	string a;
	while (getline(ifs, a))
	{
		cout << a << endl;
	}

输出:

文件打开成功 姓名:侯舒婷 性别:女 年龄:18 请按任意键继续. . .

  • 第四种方式:(不建议:一个一个读,效率较低)
  • 它首先把文件中的一个一个字符全部读出来,读出来放到我们c里面。
  • ifs.get:把文件中的字符一个一个读出来。
  • 然后用c来接收,用EOF(end of file)判断是不是读到文件尾了。
//第四种方式
	char a;
	while ((a = ifs.get()) != EOF)
	{
		cout << a;
	}

输出:

文件打开成功 姓名:侯舒婷 性别:女 年龄:18 请按任意键继续. . .

结论:

  • 读文件可以利用 ifstream ,或者fstream类
  • 利用is_open函数可以判断文件是否打开成功
  • close 关闭文件

1.二进制文件

当以二进制对文件进行操作的时候,一般读出来会出现乱码的情况。但是只要正常的写入并且正常的读出来就可以了。文件看不懂没关系。

以二进制的方式对文件进行读写操作

打开方式要指定为 ==ios::binary==

2.二进制写文件基础知识

二进制方式写文件主要利用流对象调用成员函数write 写文件就要进行输出流,利用ostream调用write的函数进行写入。 函数原型 :ostream& write(const char * buffer,int len);

参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数