Я создал очень простой код, но функция 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
В результате предполагается, что "оконная шина дает динамик", но для меня это "динамик". В чем проблема?
Это оказалось основной проблемой:
Попробовали ли вы сбросить входной файл (например, с помощью hexdump -C
или аналогичный), чтобы проверить на управляющие последовательности изгоев, такие как \r
которые могут объяснить поведение, которое вы видите.
Ваш входной файл может быть текстовым файлом из DOS/Windows-подобной системы, и вы можете использовать Unix-подобную систему.