1行毎に単語の並んだテキストファイル(utf-8)を読み込み、vectorに格納を行おうとしているのですが、全角文字を扱う際に思うように動作しません。
各行の単語をwordに保持し、for文の中で単語内の1文字ずつをchstrに入れ、wvecに格納を行っています。
半角英数文字の際は、chstrにきちんとword.txt内の文字が入っているのですが、全角の日本語の場合、8進数に変換されたものが入ってしまいます。
ex.)
word → 各chstr
apple → a p p l e
あっ→\343 \201 \202 \343 \201 \243 (正しくは あっ → あ っ となってほしい)
全角文字の場合でも正しくchstrに文字を入れるためにはどうすれば良いのでしょうか?
C++
1std::ifstream ifspdic("word.txt"); 2while (std::getline(ifspdic, str)){ 3 std::stringstream is(str); 4 std::string word, chstr; 5 std::vector<int> wvec; 6 7 is >> word; 8 for (auto it=word.begin(); it!=word.end(); it++){ 9 chstr = *it; 10 wvec.pushback(symbol2id.find(chstr)->second); 11 } 12}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/08 07:48