实验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();
}


浙公网安备 33010602011771号