Moro!
Kuinkas pystyy lukemaan txt-tiedostosta tiettyjä rivejä, esim rivit 2,3 ja 5?
Kielenä siis c++.
Täytyy ohittaa ylimääräiset rivit esim. ignore-metodilla (tai lukea ne turhaan muuttujaan).
#include <iostream> #include <fstream> #include <map> #include <set> #include <string> #include <limits> int main() { std::set<int> luettavat {2, 3, 5}; std::map<int, std::string> rivit; std::ifstream tiedosto("data.txt"); for (int i = 1; luettavat.size() && tiedosto; ++i) { if (luettavat.count(i)) { std::string tmp; if (std::getline(tiedosto, tmp)) { rivit[i] = tmp; } } else { tiedosto.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } } for (auto const& r: rivit) { std::cout << r.first << ": " << r.second << std::endl; } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.