实验6 模板类和文件IO

task3_1.cpp
#include<iostream>
#include<fstream>
#include<array>
#define N 5

int main() {
	using namespace std;

	array<int, N>x{ 97,98,99,100,101 };

	ofstream out;
	out.open("datal.dat", ios::binary);
	if (!out.is_open()) {
		cout << "fail to open datal.dat\n";
		return 1;
	}

	out.write(reinterpret_cast<char*>(&x), sizeof(x));
	out.close();
}

  task3_2.cpp

#include<iostream>
#include<fstream>
#include<array>
#define N 5

int main() {
	using namespace std;
	array<int, N>x;

	ifstream in;
	in.open("datal.dat", ios::binary);
	if (!in.is_open()) {
		cout << "fail to open datal.dat\n";
	}

	in.read(reinterpret_cast<char*>(&x), sizeof(x));
	in.close();

	for (auto i = 0;i < N;++i)
		cout << x[i] << ",";
	cout << "\b \n";
}

  

int占4字节,char读取1字节,读取了ab之间的三个字节的" "。

task4.cpp

#pragma once
#include<iostream>

using namespace std;
template<typename T>
class Vector {
public:
	int s;
	T* p;

	Vector(int m) 
	{
		p = new T[m];
		s = m;
	}
	Vector(int m,T value)
	{
		p = new T[m];
		s = m;
		for (int i = 0;i < m;i++)
			p[i] = value;
	}
	Vector(const Vector& obj) 
	{
		s = obj.s;
		p = new T[s];
		for (int i = 0;i < s;i++)
			p[i] = obj.p[i];
	}
	~Vector() = default;

	int get_size()
	{
		return s;
	}
	T &at(int m)
	{
		return p[m];
	}

	T &operator[](T i)
	{
		return p[i];
	}

	friend void output(const Vector& x)
	{
		for (int i = 0;i < x.s;i++)
			cout << x.p[i] << ",";
		cout << "\b" << " " << endl;
	}
};

  

task5.cpp

#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>

using namespace std;

void output(ostream& out)
{
	char a[30][30];
	char x;
	cout << "  ";
	out << "  ";
	for (x = 'a';x <= 'z';x++)
	{
		cout << setw(2) << x;
		out << setw(2) << x;
	}
	cout << endl;
	out << endl;
	for (int i = 0;i <= 26;i++)
	{
		cout << setw(2) << i;
		out << setw(2) << i;
		for (int j = 0;j < 26;j++)
		{
			a[i][j] = 'A' + i+ j;
			if (a[i][j] > 'Z')
				a[i][j] -= 26;
			cout << setw(2) << a[i][j];
			out << setw(2) << a[i][j];
		}
		cout << endl;
		out << endl;
	}

}

int main()
{
	ofstream out;
	out.open("cipher_key.txt", ios::out);
	if (!out.is_open())
		return 1;
	output(out);
	out.close();
}

  

 

posted @ 2022-12-06 19:36  samapoketto  阅读(16)  评论(0)    收藏  举报