Olen tekemässä C++:lla semmoista tiedostonhallintaohjelmaa. Tällä hetkellä lähdekoodi on tämän-näköinen:
#include <iostream>
int main()
{
std::string mita;
std::cout << "Haluatko luoda (L), vai poistaa (P) tiedoston? ";
std::cin >> mita; {
if ( mita=="L" ) {
system("md luotavakansio");
return 0;
}
if ( mita=="P" ) {
system("erase poistettava.dat");
return 0;
}
}
return 0;
}Miten tota tarvitsis muuttaa, jotta tuo ohjelma pyytäis ensin poistettavan tiedoston nimeä, ja sitten poistais valitun tiedoston??
Jos mahdollista, antakaa suoraa koodia.
Codeprofile kirjoitti:
Jos mahdollista, antakaa suoraa koodia.
Tuo on hieman väärä asenne opetteluun, mutta annetaan sitten.
#include <string> // Tuo sinulta puuttui, kumma, jos edes sait käännettyä yritelmäsi.
#include <cstdlib> // Samoin tämä.
#include <iostream>
int main()
{
std::string toiminto, tiedosto;
std::cout << "Haluatko luoda (L), vai poistaa (P) tiedoston? ";
std::cin >> toiminto;
std::cout << "Anna tiedoston nimi: ";
std::getline(std::cin, tiedosto); // tai std::cin >> tiedosto, jos yksikin sana riittää
if (toiminto == "L") {
tiedosto = "md " + tiedosto;
} else if (toiminto == "P") {
tiedosto = "erase " + tiedosto;
}
std::system(tiedosto.c_str());
return 0;
}Suorista koodeista oppii, kun tarkastelee koodia.
EDIT: Jess! Toimii!
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string tiedostonimi;
string valinta;
cout << "Syötä tiedoston nimi" << endl;
cin >> tiedostonimi;
cout << "Haluatko luoda (L) vai poistaa (P) tiedoston \"" << tiedostonimi << "\"?" << endl;
cin >> valinta;
if (valinta == "L")
{
ofstream tiedosto(tiedostonimi.c_str());
if (tiedosto.is_open())
tiedosto << "Haluat ehkä kirjoittaa myös jotain?";
else
cout << "Virhe luodessa tiedostoa \"" << tiedostonimi << "\"!" << endl;
tiedosto.close();
}
if (valinta == "P")
{
if (remove(tiedostonimi.c_str()) != 0)
cout << "Virhe poistettaessa tiedostoa \"" << tiedostonimi << "\"!" << endl;
}
return 0;
}Siinä pieni esimerkki, jonka pitäisi toimia kaikilla alustoilla.
[öfftöpic]
Suorista koodeista oppii hyvin, jos ei copypasteta, vaan lunttaa sivulta ja joutuu itse kirjoittamaan sen.
[/öfftöpic]
Aihe on jo aika vanha, joten et voi enää vastata siihen.