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

这被证明是根本问题:

您是否尝试过转储输入文件(例如 withhexdump -C或类似文件)以检查流氓控制序列,例如\r这可能解释您所看到的行为。

您的输入文件可能是来自类似 DOS/Windows 系统的文本文件,并且您可能正在使用类似 Unix 的系统。

于 2013-10-06T14:40:11.420 回答