相关文章推荐
任性的棒棒糖  ·  Swift-WKWebView_swift ...·  1 年前    · 
完美的苹果  ·  python ...·  1 年前    · 



通过read函数将文件中的数据按照一定的长度读取出来并且存放在新的数组中。


函数原型istream& read (char* s, streamsize n);  //用来暂存内容的数组(必须是char*型),以及流的长度

比如我们要读取txt文件中的内容

ifstream in("TEST.txt");

先通过文件流将流与txt文件绑定,然后获取文件长度

in.seekg(0, in.end);   //追溯到流的尾部
int length = in.tellg();  //获取流的长度
in.seekg(0, in.beg);  //回到流的头部

然后读取文件

char* temp = new char[length];   //用来暂存内容的数组
	if (in.is_open()) {
		cout << "Now reading..." << endl; 
		in.read(temp, length);    //read函数
	}

将流中的内容读取到容器中


template<typename T>
std::vector<T> ReadArray(std::ifstream &in, int size)   //size标识vector的大小
	std::vector<T> v(size, 0);
	in.read((char*)(&v[0]), sizeof(T)*size);   
	return v;
}

这里注意,读取时必须标识读入的位置,一般从第一个位置开始读入,即vec[0] 或者string[0]


in.seekg(0, in.beg);   //回溯到流头部
	vector<char> textVec;
	textVec = ReadArray<char>(in, length);   //读取成功
	in.close();  //不要忘了关闭流

程序整体如下


#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
template<typename T>
std::vector<T> ReadArray(std::ifstream &in, int size)   //size标识vector的大小
	std::vector<T> v(size, 0);
	in.read((char*)(&v[0]), sizeof(T)*size);
	return v;
int main() {
	ifstream in("TEST.txt");
	//获取文件的大小
	in.seekg(0, in.end);
	int length = in.tellg();
	in.seekg(0, in.beg);
	char* temp = new char[length];
	if (in.is_open()) {
		cout << "Now reading..." << endl;
		in.read(temp, length);
	for (int i = 0; i < length; ++i)
		cout << temp[i] <<" ";
	cout << endl;
	in.seekg(0, in.beg);
	vector<char> textVec;
	textVec = ReadArray<char>(in, length);
	cout << textVec[1] << endl;
	in.close();
	system("PAUSE");
                            
ios子视图控制器 ios子视图超出父视图

文章目录事件传递的逻辑伪代码思路实现代码 事件传递的逻辑伪代码- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { // Determine whether you can receive touch events if (self.userInteractionEnabled == NO || self.