Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Rivien lukeminen tiedostosta

dartvaneri [17.04.2015 21:23:47]

#

Moro!

Kuinkas pystyy lukemaan txt-tiedostosta tiettyjä rivejä, esim rivit 2,3 ja 5?
Kielenä siis c++.

Metabolix [17.04.2015 21:33:44]

#

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;
	}
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta