вектор push_back не работает

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

В результате предполагается, что "оконная шина дает динамик", но для меня это "динамик". В чем проблема?

Теги:

1 ответ

2
Лучший ответ

Это оказалось основной проблемой:

Попробовали ли вы сбросить входной файл (например, с помощью hexdump -C или аналогичный), чтобы проверить на управляющие последовательности изгоев, такие как \r которые могут объяснить поведение, которое вы видите.

Ваш входной файл может быть текстовым файлом из DOS/Windows-подобной системы, и вы можете использовать Unix-подобную систему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню