私の入力ファイルは次のようなものです:
C:\Users\DeadCoder\AppData\Local\CoCreate
ツリーを作成していますが、入力ファイルから\
区切り記号で読み取るときに、ディレクトリの名前を抽象化する必要があります。上記の例のように、c:、users、DeadCoder、Appdata ... を個別に抽象化する必要があります。すべての人が質問を理解していることを願っています。次に、取得したオプションを見てみましょう。
1-
istringstream
では完全に正常に機能しますwhitespace
が、では機能しません\
。
2-
strtok()
チャーで動作します。したがって、文字列を char に変更する必要がありますが、これは本当にしたくありません。
3- Boost Tokenizer()
これは興味深いようで、少し前にグーグルで検索したことを除いて、過去に精通していません。コードをコピーしたところ、次のようになりました。
#include <boost/foreach.hpp>
#include <boost/tokenizer.hpp>
using namespace boost;
int main(){
string tempStr;
ifstream fin;
fin.open("input.txt");
int i=0;
while (!fin.eof()){
getline(fin,tempStr);
char_separator<char> sep("\"); // error: missing terminating " character
tokenizer<char_separator<char>> tokens(tempStr, sep);
for (const auto& t : tokens) {
cout << t << "." << endl;
}
}
"error: boost/foreach.hpp: No such file or directory"
これにより、誰かがここで私を助けることができるというエラーが発生し ます。better way
そして、で入力ファイルを読み取る他に何かありますか\ delimiter
。class tokenizer()
私はまだ c++ を学んでいるので、コードを大量に使用しないでください。
編集:ブーストライブラリがインストールされていなかったため、このエラーが発生していました。tokenize
誰かが3 番目のライブラリをインストールせずにストリングを作成するためのより良い方法を説明できれば、非常に助かります。
一番; デッドコーダー。