Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tiedostot

Hengilö [16.03.2013 18:45:11]

#

Miten C++:ssa saa käsiteltyä tiedostoja? Esim. PHP:ssa tiedoston lukeminen onnistuu näin:

<?php
$tiedosto = file_get_contents("tiedosto.txt");
echo $tiedosto;
?>

Miten on C++:an laita? Tarkoituksena olisi siis lisätä tiedostoon tietoa ja lukea tiedostoa.

Metabolix [16.03.2013 19:04:19]

#

Tiedostoja käsitellään otsikossa fstream määritellyillä luokilla std::ifstream ja std::ofstream, joista luodut oliot toimivat kuten std::cin ja std::cout. Netistä löytyy yllin kyllin esimerkkejä.

Hengilö [16.03.2013 19:04:35]

#

Kiva...

Metabolix [16.03.2013 19:39:57]

#

Kysymäsi PHP-funktion voi toteuttaa suunnilleen näin:

#include <string>
#include <fstream>
#include <stdexcept>

std::string file_get_contents(const std::string& filename) {
	std::string data;
	char buffer[1024];
	std::ifstream file(filename.c_str(), std::ios::binary);
	if (!file.is_open()) {
		throw std::runtime_error("Virhe tiedoston avaamisessa!");
	}
	while (file) {
		file.read(buffer, sizeof(buffer));
		data.append(buffer, file.gcount());
		if (file.eof()) {
			return data;
		}
	}
	throw std::runtime_error("Virhe tiedoston lukemisessa!");
}

Vastaus

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

Tietoa sivustosta