0

非常に単純なコードを作成しましたが、push_back 関数が機能しません。それは私に予想とはまったく異なる結果をもたらします。

コードは次のとおりです。

std::vector<std::string> words;
std::ifstream infile ("words.txt");
std::string temp;
while (std::getline(infile, temp))
{
    words.push_back(temp);
}
for (std::size_t i = 0; i < words.size(); i++)
{
    std::cout << words[i] << " ";
}

「words.txt」ファイルには、次の 4 つの単語のみが含まれています。

window
tyre
give
speaker

結果は「窓のタイヤがスピーカー」のはずですが、私にとっては「スピーカー」です。何が問題ですか?

4

1 に答える 1

2

これが根本的な問題であることが判明しました。

hexdump -C入力ファイルを (たとえば、または同様のもので)ダンプして、表示され\rている動作を説明する可能性のある不正な制御シーケンスをチェックしてみましたか?

入力ファイルは DOS/Windows ライクなシステムのテキスト ファイルで、Unix ライクなシステムを使用している可能性があります。

于 2013-10-06T14:40:11.420 に答える