Чтение целых чисел из текстового файла с помощью C ifstream
Извлечение и сохранение информации о смежности графов из текстового файла в вектор представляет собой проблему, когда работа со строками целочисленного количества переменных. Вот комплексное решение с использованием ifstream языка C:
Традиционный подход предполагает чтение каждой строки с помощью getline() и использование потока входной строки для анализа строки. Этот метод хорошо работает для строк с постоянным количеством целых чисел.
#include
#include
#include
std::ifstream infile("text_file.txt");
std::string line;
while (std::getline(infile, line)) {
std::istringstream iss(line);
int n;
std::vector v;
while (iss >> n) {
v.push_back(n);
}
// Process the vector v
}
Однако, если у вас есть строки с различным числом целых чисел, существует однострочное решение, использующее цикл и идиому «оставаться», любезно предоставлено Люком Дантоном:
#include
#include
#include
int main() {
std::vector<:vector>> vv;
for (std::string line;
std::getline(std::cin, line);
vv.push_back(std::vector(std::istream_iterator(std::move(std::istringstream(line))),
std::istream_iterator()))
);
// Process the vector of vectors vv
}
В этом фрагменте идиома «stay» гарантирует, что предоставленная ссылка lvalue останется действительной после перемещения. Этот шаг необходим для повышения эффективности, поскольку он позволяет избежать ненужного копирования символов.
Эти решения предоставляют эффективные и универсальные методы извлечения целых чисел из текстового файла и сохранения их в векторе, независимо от того, имеют ли строки согласованный или различное количество целых чисел.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3