私はstd :: string * ptrをstd :: string :: operator >>でC++に割り当てたいと思います。C++でstd :: istream経由で文字列オブジェクトを割り当てる
私は以下のクラスを持っています。
The first form (1) returns a string object with a copy of the current contents of the stream.
The second form (2) sets str as the contents of the stream, discarding any previous contents.
は、私が "./dump" の内容を確認し、 "./file" と同じです:
class A{
public:
A(){
ptr = new std::string();
}
A(std::string& file){
ptr = new std::string();
std::ifstream ifs(file);
std::stringstream ss;
ss << ifs.rdbuf();
*ptr=ss.str();
ifs.close();
}
~A(){
delete ptr;
}
void output(std::ostream& stream) const{
stream << *ptr;
}
void input(std::istream& stream) const{
stream >> *ptr;
}
private:
std::string *ptr;
};
int main(void){
std::string file="./file";
std::string dfile="./dump";
std::ofstream ofs(file);
A a(file);
a.output(ofs);
std::ifstream ifs(dfile);
A b();
b.input(ifs);
return 0;
}
は、以下のテキストが含まれている "./file" とします。 はしかし、私は(「ダンプ./」)b.inputから(Bの*のPTR)を取得文字列オブジェクトは、私は全体のテキストを取得するにはどうすればよいだけ
The
あるスペースでdelimiteredだけの小さな文字列、ありますか? ありがとう
危険! 'A'は3つのルールに違反します。 – aschepler