当前位置: 首页 > news >正文

陕西农产品网站建设服务器做网站好

陕西农产品网站建设,服务器做网站好,荥阳市网站建设,免费做电子书的网站有哪些封装一个 File 类, 用有私有成员 File* fp 实现以下功能 File f "文件名" 要求打开该文件 f.write(string str) 要求将str数据写入文件中 string str f.read(int size) 从文件中读取最多size个字节, 并将读取到的数据返回 析构函数 #…

 封装一个 File 类,

用有私有成员 File* fp

实现以下功能

File f = "文件名" 要求打开该文件

f.write(string str) 要求将str数据写入文件中

string str = f.read(int size) 从文件中读取最多size个字节,

并将读取到的数据返回 析构函数

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;                 class File{
private:FILE* fp;
public:File(const char* p);void write(const char* str);char* read(const int& size);	~File(){fclose(fp);}
};File::File(const char* p)	
{fp=fopen(p,"w+");cout<<p<<"文件打开成功"<<endl;
}void File::write(const char* str)
{if(fp==NULL){cout<<"写入失败"<<endl;}int len=strlen(str);fwrite(str,len,1,fp);cout<<"写入成功"<<endl;
}char* File::read(const int& size)
{if(fp==NULL){cout<<"读取失败"<<endl;}char* p=(char*)malloc(size+1);fseek(fp,SEEK_SET,0);fread(p,size,1,fp);return p;
}int main(int argc,const char** argv){File f="test.txt";cout<<"请输入文件内容"<<endl;char str1[64];cin>>str1;f.write(str1);int size;cout<<"请输入读取多少数据"<<endl;cin>>size;char* p=f.read(size);cout<<p<<endl;free(p);return 0;
}

 

 封装一个 Mutex 互斥锁类 要求:

构造函数:初始化互斥锁,

并选择互斥锁的种类 lock 上锁互斥锁

unlock 解锁互斥锁 析构函数,

销毁互斥锁

并且开启一个线程测试该互斥锁

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>
#include <signal.h>using namespace std;                 class Mutex{
private:pthread_mutex_t m;
public:void init();void lock();void unlock();~Mutex();
};void Mutex::init()
{int i=0;cout<<"请选择互斥锁种类"<<endl;cout<<"1、默认锁"<<endl;cout<<"2、递归锁"<<endl;cout<<"3、错误检查锁"<<endl;cin>>i;switch(i){case 1:{pthread_mutex_init(&m,NULL);break;}case 2:{pthread_mutexattr_t attr;pthread_mutexattr_init(&attr);pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE_NP);pthread_mutex_init(&m,&attr);pthread_mutexattr_destroy(&attr);break;}case 3:{pthread_mutexattr_t attr;pthread_mutexattr_init(&attr);pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_ERRORCHECK_NP);pthread_mutex_init(&m,&attr);pthread_mutexattr_destroy(&attr);break;}}
}void Mutex::lock()
{pthread_mutex_lock(&m);
}void Mutex::unlock()
{pthread_mutex_unlock(&m);
}Mutex::~Mutex()
{pthread_mutex_destroy(&m);cout<<"析构成功"<<endl;
}/*-----------------------------------------------*/Mutex mutex1,mutex2;//设置全局的对象int flag=1;void task1()
{while(flag){mutex1.lock();printf("1号在看电视\n");sleep(1);mutex2.unlock();}
}void task2()
{while(flag){mutex2.lock();printf("2号在打游戏\n");sleep(1);mutex1.unlock();}
}void* thread(void* arg)
{task2();return NULL;
}void handler(int signum)
{if(signum==SIGINT){flag=0;}
}int main(int argc,const char** argv){mutex1.init();mutex2.init();mutex2.lock();signal(SIGINT,handler);pthread_t id;pthread_create(&id,0,thread,0);pthread_detach(id);task1();sleep(1);return 0;
}

 

http://www.dtcms.com/a/615434.html

相关文章:

  • 电商设计灵感网站产品展示网站源码
  • 学网站开发哪里好谷歌网页版入口在线
  • 河南省建设招投标网站百度如何添加店铺位置信息
  • 能源公司网站模板wordpress文件上传管理
  • 做app挣钱还是网站crm销售管理
  • 网络公司网站官网恩施市住房和城乡建设局网站
  • 前端开发新方向,Server Components实战体验
  • app展示网站模板免费网站统计代码
  • 东莞做网站能赚钱吗js做网站框架
  • JavaScript 深度解析:从 map 陷阱到字符串奥秘
  • 佛山营销网站建设推广北京朝阳区有哪些小区
  • 如何做自己的大淘客网站中国企业网是什么级别
  • 1688网站可以自己做吗wordpress自定义字段图文
  • 婚恋网站策划阿里云如何建设网站
  • 龙溪网站建设企业建设电动车官网
  • 广东省网站建设正保建筑工程网
  • 可以浏览的外文网站免费推广方式有哪些
  • 免费网站建设网站优化软件好的企业网站建设
  • 旅游网站如何做推广建设公众号官方网站
  • 健身器材网站模板域名服务器在哪个国家
  • 礼品做便宜的网站phpcms v9怎么做网站
  • 新城免费做网站移动应用开发就业方向
  • Go语言编译器源码解析|深入理解Go语言编译器的工作原理与实现
  • 广宁住房和城乡建设局网站做服装有哪些好的网站
  • C语言反编译器:深入分析与常见应用
  • 网站项目框架杭州网站建设 杭州app
  • 嵌入式系统200问,从电阻到RTOS全解析(AI助教回答)适用入门嵌入式软件初级工程师,筑牢基础,技术积累
  • Linux网络DNS与ICMP
  • 环企优站网站建设手机 登录asp网站
  • 30-ESP32-S3开发环境搭建