Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tiedostopolun syöttäminen

Codeprofile [12.01.2007 18:55:34]

#

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.

Metabolix [12.01.2007 19:05:25]

#

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

Codeprofile [12.01.2007 19:06:18]

#

Suorista koodeista oppii, kun tarkastelee koodia.

EDIT: Jess! Toimii!

Legu [12.01.2007 19:15:20]

#

#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.

moptim [12.01.2007 19:16:52]

#

[öfftöpic]
Suorista koodeista oppii hyvin, jos ei copypasteta, vaan lunttaa sivulta ja joutuu itse kirjoittamaan sen.
[/öfftöpic]

Vastaus

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

Tietoa sivustosta