w实验任务三
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("data.txt",ios::binary); if(!out.is_open()){ cout<<"fail to open data1.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<char,N>x; ifstream in; in.open("data.dat1",ios::binary); if(!in.is_open()){ cout<<"fail to open data1.dat\n"; return 1; } in.read(reinterpret_cast<char *>(&x),sizeof(x)); in.close(); for(auto i=0;i<N;i++) cout<<x[i]<<","; cout<<"\b\b\n"; }
97的ASCLL码值是a,而文件里输入的x是整型,占4个字符,转换成char字符时,a只占1个字符,而多出来3个字符变成空格,98ASCLL码值为b,所以结果如图所示。
实验任务四
task4.cpp
#include<iostream> #include"vector.h" void test(){ using namespace std; int n; cin>>n; Vector<double> x1(n); for(auto i=0;i<n;i++) x1.at(i)=i*0.6; output(x1); Vector<int> x2(n,88); Vector<int> x3(x2); output(x2); output(x3); x2.at(0)=66; output(x2); x3[0]=666; output(x3); } int main(){ test(); }
vector.hpp
#pragma once #include<iostream> using namespace std; template<typename T> class Vector{ public: Vector(int n):size{n}{ value=new T[n]; } Vector(int n,T v):size{n}{ value=new T[n]; for(int i=0;i<n;i++) value[i]=v; } Vector(const Vector<T> &a):size{a.size}{ value=new T[size]; for(int i=0;i<size;i++) value[i]=a.value[i]; } T &operator[](int i){ return value[i]; } int get_size() const{ return size; } T &at(int index){ return value[index]; } friend void output(const Vector<T> &a){ for(int i=0;i<a.size;i++) cout<<a.value[i]<<","; cout<<"\b\b\n"; } private: int size; T *value; };
实验任务五
task5.cpp
#include<iostream> #include<fstream> #include<string> #include<iomanip> using namespace std; void output(std::ostream &out){ string a[27][27]={" "}; int n = 0; for(int i=1;i<27;i++){ a[i][0]=to_string(i); a[0][i]=97+n; n++; } for(int i=1;i<27;i++){ n=i; for (int j=1;j<27;j++){ if(65+n>90) { a[i][j]=65+n-26; } else{ a[i][j]=65+n; } n++; } } for(int i=0;i<27;i++){ for(int j=0;j<27;j++){ 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()){ cout<<"fail to open cipher_key.txt\n"; return 1; } output(out); out.close(); }
标签:std,文件,int,Vector,实验,include,out,模板,size From: https://www.cnblogs.com/wanglaich/p/16939786.html