C ifstream을 사용하여 텍스트 파일에서 정수 읽기
텍스트 파일에서 그래프 인접 정보를 벡터로 검색하고 저장하는 것이 어려운 경우 가변 정수 개수의 라인을 처리합니다. 다음은 C의 ifstream을 사용하는 포괄적인 솔루션입니다.
기존 접근 방식에서는 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
}
그러나 정수 개수가 다양한 줄이 있는 경우 Luc Danton이 제공하는 루프와 'stay' 관용어를 활용하는 한 줄 솔루션이 있습니다.
#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