使用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
}
但是,如果您的行具有不同的整數計數,則有一個利用循環和“stay”習慣用法的單行解決方案,由Luc Danton 提供:
#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」習慣用法可確保提供的左值引用在移動後仍然有效。為了提高效率,這一移動是必要的,因為它避免了不必要的字元複製。
這些解決方案提供了高效且通用的方法,用於從文字檔案中提取整數並將其儲存在向量中,無論行是否具有一致或一致的字元。不同數量的整數。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3