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.