shared_ptr ポインターを使用してファイルから読み取ろうとしています。挿入演算子を使用する方法がわかりません。コードは次のとおりです。
#include <iostream>
#include <regex>
#include <fstream>
#include <thread>
#include <memory>
#include <string>
#include <map>
using namespace std;
int main()
{
string path="";
map<string, int> container;
cout<<"Please Enter Your Files Path: ";
getline(cin,path);
shared_ptr<ifstream> file = make_shared<ifstream>();
file->open(path,ifstream::in);
string s="";
while (file->good())
{
file>>s;
container[s]++;
s.clear();
}
cout <<"\nDone..."<< endl;
return 0;
}
単に行う:
file>>s;
動作しません。
ファイルが指している現在の値を取得するにはどうすればよいですか (行全体を取得したくありません。この方法で単語とその出現回数を取得する必要があるだけです)。
ちなみに、私は自分でファイルを閉じないように shared_ptr を使用しましたが、この型のポインタを作成することで、 shared_ptr (スマート) はfile->close()
自分自身を書かなくても十分でしょうか? またはそれらは無関係ですか?