|
Niinkin
yksinkertaiselta kuulostava asia kuin tiedoston olemassaolon
tarkistaminen ei ole helppo asia koodata. Tämä ohjelma tarkistaa
onko tiedosto olemassa. Jos ei, kysytään halutaanko se luoda ja jos
on, kysytään halutaanko se tyhjentää. Tai näin sen pitäisi
toimia.
#include
<fstream.h>
void
main()
{
char
nimi[20];
cout << "Ohjelma tallentaa nimiä
tiedostoon.\n";
cout << "Anna lisättävä nimi: ";
cin >> nimi;
ofstream
tallennus;
tallennus.open("testi.txt");
if
(tallennus.is_open() == false)
{
char vastaus;
cout <<
"Tiedostoa ei ole olemassa. Haluatko luoda sen (k/e)? ";
cin >> vastaus;
if
(vastaus == 'k')
{
ofstream uusitiedosto;
if
(uusitiedosto.is_open() == false)
cout << "Tiedoston avaus ei onnistunut!";
else
cout << "Tiedosto on luotu ja nimi tallennettu.\n";
uusitiedosto << nimi << "\n";
uusitiedosto.close();
}
else
{
cout << "Tiedostoa ei luotu eikä nimeä
tallennettu.\n";
}
}
else
{
char vastaus;
cout <<
"Tiedosto on olemassa. Haluatko tyhjentää sen (k/e)? ";
cin >> vastaus;
if
(vastaus == 'k')
{
ofstream tyhjennatiedosto;
tyhjennatiedosto.open("testi.txt");
if
(tyhjennatiedosto.is_open() == false)
cout << "Tiedoston avaus ei onnistunut!";
else
cout << "Tiedosto on tyhjennetty muusta tiedosta.\n";
tyhjennatiedosto.close();
tyhjennatiedosto << nimi << "\n";
}
else
{
cout << "Tiedostoa ei tyhjennetty, joten nimi lisättiin
loppun.\n";
tallennus << nimi << "\n";
}
}
tallennus.close();
cout <<
"\n\n";
}
|