代码拉取完成,页面将自动刷新
#include"../source/buffer.hpp"
void WriteTest()
{
Buffer buffer;
/******以const char*方式写入数据--异常情况下*****/
std::cout<<"******以const char*方式写入数据--异常情况下*****"<<std::endl;
std::cout<<"一次性写入的字符串长度太长"<<std::endl;
char str[100010];
buffer.WriteByChar(str,9000);
std::cout<<"输入的写入长度是负数"<<std::endl;
buffer.WriteByChar(str,-1);
std::cout<<"******以const char*方式写入数据--异常情况下*****"<<std::endl;
/******以const char*方式写入数据--正常情况下*****/
std::cout<<"******以const char*方式写入数据--正常情况下*****"<<std::endl;
/*空间足够情况下*/
std::cout<<"******以const char*方式写入数据--正常情况下/空间足够情况下*****"<<std::endl;
//写入数据但写指针不往后移动
std::cout<<"写入数据但写指针不往后移动"<<std::endl;
buffer.Clear();
const char* str1="hello world\n";
buffer.WriteByChar(str1,strlen(str1));
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
//写入数据且写指针往后移动
std::cout<<"写入数据且写指针往后移动"<<std::endl;
buffer.Clear();
buffer.WriteByCharAndMove(str1,strlen(str1));
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为"<<buffer.ReadByString(buffer.GetReadAbleSpace())<<std::endl;
std::cout<<"******以const char*方式写入数据--正常情况下/空间足够情况下*****"<<std::endl;
/*空间不足情况下*/
std::cout<<"******以const char*方式写入数据--正常情况下/空间不足情况下*****"<<std::endl;
//写入数据但写指针不往后移动
std::cout<<"写入数据但写指针不往后移动"<<std::endl;
buffer.Clear();
const char* str2="hello world hello world hello world";
buffer.WriteByChar(str2,strlen(str2));
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
//写入数据但写指针往后移动
std::cout<<"写入数据且写指针往后移动"<<std::endl;
buffer.Clear();
buffer.WriteByCharAndMove(str2,strlen(str2));
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为"<<buffer.ReadByString(buffer.GetReadAbleSpace())<<std::endl;
std::cout<<"写入数据且写指针往后移动"<<std::endl;
std::cout<<"******以const char*方式写入数据--正常情况下/空间不足情况下*****"<<std::endl;
std::cout<<"******以const char*方式写入数据--正常情况下*****"<<std::endl;
/******以string方式写入数据--异常情况下******/
// std::cout<<"******以string方式写入数据--异常情况下*****"<<std::endl;
// std::cout<<"一次性写入的字符串长度太长"<<std::endl;
// std::string str3="hello world";
// for(int i=0;i<1000;i++)
// {
// str3+=str3;
// }
// buffer.Clear();
// buffer.WriteByString(str3);
// std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
// std::cout<<"******以string方式写入数据--异常情况下*****"<<std::endl;
/******以string方式写入数据--正常情况下******/
std::cout<<"******以string方式写入数据--正常情况下*****"<<std::endl;
/*空间足够情况下*/
std::cout<<"******以string方式写入数据--正常情况下/空间足够情况下*****"<<std::endl;
//写入数据但写指针不往后移动
std::string str4="hello world";
buffer.WriteByString(str4);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
//写入数据且写指针往后移动
buffer.Clear();
buffer.WriteByStringAndMove(str4);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为"<<buffer.ReadByString(buffer.GetReadAbleSpace())<<std::endl;
std::cout<<"******以string方式写入数据--正常情况下/空间足够情况下*****"<<std::endl;
/*空间不足情况下*/
std::cout<<"******以string方式写入数据--正常情况下/空间不足情况下*****"<<std::endl;
//写入数据但写指针不往后移动
std::cout<<"写入数据但写指针不往后移动"<<std::endl;
std::string str5="hello world hello world hello world";
buffer.Clear();
buffer.WriteByString(str5);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
//写入数据且写指针往后移动
std::cout<<"写入数据且写指针往后移动"<<std::endl;
buffer.Clear();
buffer.WriteByStringAndMove(str5);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为"<<buffer.ReadByString(buffer.GetReadAbleSpace())<<std::endl;
std::cout<<"******以string方式写入数据--正常情况下/空间不足情况下*****"<<std::endl;
std::cout<<"******以string方式写入数据--正常情况下*****"<<std::endl;
}
void ReadTest()
{
/********以char*方式读取数据********/
/*以char*方式读取数据--正常情况下*/
std::cout<<"******以char*方式读取数据--正常情况下*****"<<std::endl;
Buffer buffer;
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
//读取数据,读指针不往后移动
std::cout<<"读取数据,读指针不往后移动"<<std::endl;
char ret[1000];
buffer.ReadByChar(ret,buffer.GetReadAbleSpace());
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<ret<<std::endl;
//读取数据,指针往后移动
std::cout<<"读取数据,读指针往后移动"<<std::endl;
memset(ret,'\0',sizeof ret);
buffer.ReadByCharAndMove(ret,buffer.GetReadAbleSpace());
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<ret<<std::endl;
std::cout<<"******以char*方式读取数据--正常情况下*****"<<std::endl;
/*以char*方式读取数据--正常情况下*/
/*以char*方式读取数据--异常情况下*/
std::cout<<"******以char*方式读取数据--异常情况下*****"<<std::endl;
buffer.Clear();
memset(ret,'\0',sizeof ret);
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
//要读取的数据大小为负数
buffer.ReadByChar(ret,-1);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<ret<<std::endl;
//要读取的数据大小为0
buffer.ReadByChar(ret,0);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<ret<<std::endl;
//要读取的数据大小大于可读数据大小
buffer.ReadByChar(ret,1000);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<ret<<std::endl;
std::cout<<"******以char*方式读取数据--异常情况下*****"<<std::endl;
/*以char*方式读取数据--异常情况下*/
/********以char*方式读取数据********/
/********以string方式读取数据********/
std::cout<<"******以string方式读取数据*****"<<std::endl;
/*以string方式读取数据--正常情况下*/
std::cout<<"******以string方式读取数据--正常情况下*****"<<std::endl;
buffer.Clear();
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
std::string str=buffer.ReadByString(buffer.GetReadAbleSpace());
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<str<<std::endl;
str=buffer.ReadByStringAndMove(buffer.GetReadAbleSpace());
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<ret<<std::endl;
std::cout<<"******以string方式读取数据--正常情况下*****"<<std::endl;
/*以string方式读取数据--正常情况下*/
/*以string方式读取数据--异常情况下*/
buffer.Clear();
memset(ret,'\0',sizeof ret);
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
std::string tmp;
//要读取的数据大小为负数
tmp=buffer.ReadByString(-1);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<tmp<<std::endl;
//要读取的数据大小为0
tmp=buffer.ReadByString(0);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<tmp<<std::endl;
//要读取的数据大小大于可读数据大小
tmp=buffer.ReadByString(1000);
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<tmp<<std::endl;
std::cout<<"******以char*方式读取数据--异常情况下*****"<<std::endl;
/*以string方式读取数据--异常情况下*/
std::cout<<"******以string方式读取数据*****"<<std::endl;
/********以string方式读取数据********/
/********读取一行的方式读取数据********/
std::cout<<"******以string方式读取数据*****"<<std::endl;
/*读取一行的方式读取数据--异常情况*/
std::cout<<"******以string方式读取数据--异常情况*****"<<std::endl;
//缓冲区中的字符没有换行符,返回所有数据
std::cout<<"缓冲区中的字符没有换行符"<<std::endl;
buffer.Clear();
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
std::string line=buffer.GetALineAndMoveBack();
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<line<<std::endl;
//缓冲区中没有数据,返回空string
std::cout<<"缓冲区中没有数据"<<std::endl;
buffer.Clear();
line=buffer.GetALineAndMoveBack();
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<line<<std::endl;
std::cout<<"******以string方式读取数据--异常情况*****"<<std::endl;
/*读取一行的方式读取数据--异常情况*/
/*读取一行的方式读取数据--正常情况*/
std::cout<<"******以string方式读取数据--正常情况*****"<<std::endl;
buffer.Clear();
buffer.WriteByCharAndMove("hello world\nhello world",strlen("hello world"));
line=buffer.GetALineAndMoveBack();
std::cout<<"Log# buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"Log# buffer可读数据为: "<<line<<std::endl;
std::cout<<"******以string方式读取数据--正常情况*****"<<std::endl;
/*读取一行的方式读取数据--正常情况*/
std::cout<<"******以string方式读取数据*****"<<std::endl;
/********读取一行的方式读取数据********/
}
void OtherTest()
{
//验证清理功能
std::cout<<"验证清理功能"<<std::endl;
Buffer buffer;
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
std::cout<<"Log# Front buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
buffer.Clear();
std::cout<<"Log# After buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
std::cout<<"验证清理功能"<<std::endl;
//获得可读数据的大小
std::cout<<"获得可读数据的大小"<<std::endl;
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
std::cout<<"Log# 写入数据后buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
buffer.Clear();
std::cout<<"Log# 读取数据后buffer可读数据大小为"<<buffer.GetReadAbleSpace()<<std::endl;
//用buffer对象构造buffer
buffer.WriteByCharAndMove("hello world",strlen("hello world"));
Buffer tmp(buffer);
std::string ret=tmp.ReadByStringAndMove(tmp.GetReadAbleSpace());
std::cout<<"Log# tmp可读数据为: "<<ret<<std::endl;
}
int main()
{
//写入数据测试
WriteTest();
//读取是数据测试
ReadTest();
//其他功能测试
OtherTest();
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。