sstream操作.

#include <iostream>
#include <fstream>
#include <sstream>
enum SetPosition:int{ BEGIN=1, CUR=2, END=3 };
class Stream{
 private:
  std::string data;
  std::stringstream::pos_type mark;
  
  public:
   Stream();
   Stream(const std::string& tempStr);
   ~Stream();
   void addData(const SetPosition& position);
};
Stream::Stream()
{
 std::string tempStr;
 if(getline(std::cin, tempStr)){
  data=tempStr;
  
 }else{
  std::cerr<<"the data is empty\n";
 }
}
Stream::Stream(const std::string& tempStr)
       :data(tempStr)
{
 if(this->data.empty()){
  std::cerr<<"the data is empty\n";
  
 }else{
  std::cout<<"input something what you want for data";
  getline(std::cin, this->data);
  
 }
}
Stream::~Stream()
{
 //nothing;
}
void Stream::addData(const SetPosition& position)
{
 std::string sTr("shihuawoaini");
 std::stringstream strm(data);
 mark=strm.tellg();
  std::cout<<strm.str();
 
 switch(position){
  case BEGIN:
   {
    strm.seekg(0, std::stringstream::beg);
    strm<<sTr;
    break;
   }
   case CUR:
    {
     strm.seekg(0, std::stringstream::cur);
     strm<<sTr;
     break;
    }
    case END:
     {
      strm.seekg(0, std::stringstream::end);
      strm<<sTr;
      break;
     }
 }
 this->data=strm.str();
 std::cout<<strm.str()<<std::endl;
}
int main()
{
 Stream myPosition;
 myPosition.addData(CUR);
 return 0;
}

你可能感兴趣的:(sstream操作.)