Pereiti prie turinio

C++ struktura PAGALBA


Rekomenduojami pranešimai

Skaitymas is failo, del KURO TIPO padare nesamone skaciuoti, tik Dyzelinas ar Benzinas ar Dujos/Benzinas. Gal kas padesi cia? :)

 

 

 

Nuskaitymas is failo:

 

1 MIG29 Subaru Legacy Juoda, 2004 Benzinas

2 888888 BMW 745 Juoda, 2002 Dyzelinas/Dujos

3 007 MERCEDES BENZ S320 Pilka, 1999 Dujos

4 001 HARLEY DAVIDSON V-ROD Pilka, 2003 Dyzelinas

5 VAELGT AUDI A4 Geltona, 2005 Dyzelinas

6 TDX998 Audi A6 Zalia, 1999 Dyzelinas

7 AVILYS LEXUS GS 300 Zalia, 2005 Dyzelinas

8 LT0005 BMW X5 Melyna, 2004 Benzinas

9 LT0001 SUBARU Legacy Pilka, 2006 Benzinas

10 444444 VW NEW BEETLE Geltona, 2003 Dyzelinas/Dujos

 

Programa:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <iterator>
#include <sstream>

using namespace std;

struct Automobilis {
int eilNr;
string automarke;
string pavadinimas;
string spalva;
string kuro;
int metai;
};

int main()
{
ifstream Duomenys("auto1.txt");
vector<Automobilis> Masinos;
if (Duomenys.fail())
{
printf("Nepavyko uzkrauti duomenu failo!");
return 0;
}

string linija;
while (getline(Duomenys, linija))
{
stringstream ss(linija);
vector<string> datawows;
copy(istream_iterator<string>(ss), istream_iterator<string>(), back_inserter(datawows));

linija.erase(0, datawows[0].length() + 1);
linija.erase(0, datawows[1].length() + 1);

string pavadinimas = linija;
int Pozicija = pavadinimas.find('(');
pavadinimas.erase(Pozicija, pavadinimas.length());

linija.erase(0, pavadinimas.length() + 1);
// printf("%s\n", linija.c_str()); // Geltona, 2003m)

string spalva = linija.substr(0, linija.find(","));
linija.erase(0, spalva.length() + 2);

string Metai = linija.substr(0, linija.find(","));
linija.erase(0, Metai.length() + 3);
// metai susidaro is 4 simboliu, todel, manau, kad galiu taip daryt


string kuro = linija.substr(0, linija.find("), "));
linija.erase(0, kuro.length() + 3);





Automobilis a;
a.eilNr = atoi(datawows[0].c_str());
a.automarke = datawows[1];
a.pavadinimas = pavadinimas;
a.spalva = spalva;
a.metai = atoi(Metai.c_str());
a.kuro = atoi(kuro.c_str());
Masinos.push_back(a);
}

vector<Automobilis>::iterator it, end;

for (it = Masinos.begin(), end = Masinos.end(); it != end; ++it)
{
printf("\n------------------\n Eil. numeris: %d\nMasina: %s\nMetai: %d\nReg. numeris: %s\nSpalva: %s \nKuro tipas: %d\n------------------\n\n", (*it).eilNr, (*it).pavadinimas.c_str(), (*it).metai, (*it).automarke.c_str(), (*it).spalva.c_str()), (*it).kuro.c_str();
}

system("pause");

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tavo kodas visai neveikia, nes parašytas aklai naudojant “copy/paste”. Kokia IDE naudoji? Nes jis neturi būti kompiliuojamas.

 

Pagal šitas eilutes:

int Pozicija = pavadinimas.find('(');
...
string kuro = linija.substr(0, linija.find("), "));

 

tekstineme faile turi būti skliaustai:

 

1 MIG29 Subaru Legacy Juoda, 2004 Benzinas
2 888888 BMW 745 Juoda, 2002 Dyzelinas/Dujos
3 007 MERCEDES BENZ S320 Pilka, 1999 Dujos
4 001 HARLEY DAVIDSON V-ROD Pilka, 2003 Dyzelinas
5 VAELGT AUDI A4 Geltona, 2005 Dyzelinas
6 TDX998 Audi A6 Zalia, 1999 Dyzelinas
7 AVILYS LEXUS GS 300 Zalia, 2005 Dyzelinas
8 LT0005 BMW X5 Melyna, 2004 Benzinas
9 LT0001 SUBARU Legacy Pilka, 2006 Benzinas
10 444444 VW NEW BEETLE Geltona, 2003 Dyzelinas/Dujos

 

parodyk nors vieną. :unsure:

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Va cia...

 

1 MIG29 Subaru Legacy (Juoda, 2004) Benzinas

2 888888 BMW 745 (Juoda, 2002) Dyzelinas/Dujos

3 007 MERCEDES BENZ S320 (Pilka, 1999) Dujos

4 001 HARLEY DAVIDSON V-ROD (Pilka, 2003) Dyzelinas

5 VAELGT AUDI A4 (Geltona, 2005) Dyzelinas

6 TDX998 Audi A6 (Zalia, 1999) Dyzelinas

7 AVILYS LEXUS GS 300 (Zalia, 2005) Dyzelinas

8 LT0005 BMW X5 (Melyna, 2004) Benzinas

9 LT0001 SUBARU Legacy (Pilka, 2006) Benzinas

10 444444 VW NEW BEETLE (Geltona, 2003) Dyzelinas/Dujos

Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <iterator>
#include <sstream>
#include <cstdlib>

using namespace std;

struct Automobilis
{
   int eilNr;
   string automarke;
   string pavadinimas;
   string spalva;
   string kuro;
   int metai;
};

int main()
{
   ifstream Duomenys("auto1.txt");
   vector<Automobilis> Masinos;
   if (Duomenys.fail())
   {
       printf("Nepavyko uzkrauti duomenu failo!");
       return 0;
   }
   string linija;
   while (getline(Duomenys, linija))
   {
       Automobilis a;
       stringstream ss(linija);
       vector<string> datawows;
       copy(istream_iterator<string>(ss), istream_iterator<string>(), back_inserter(datawows));

       linija.erase(0, datawows[0].length() + 1);
       linija.erase(0, datawows[1].length() + 1);

       a.pavadinimas = linija;
       int Pozicija = a.pavadinimas.find("(");
       a.pavadinimas.erase(Pozicija, a.pavadinimas.length());
       linija.erase(0, a.pavadinimas.length() + 1);
       a.spalva = linija.substr(0, linija.find(","));
       linija.erase(0, a.spalva.length() + 2);
       string Metai = linija.substr(0, linija.find(" "));
       linija.erase(0, 5);
       a.kuro = linija;

       a.eilNr = atoi(datawows[0].c_str());
       a.automarke = datawows[1];
       a.metai = atoi(Metai.c_str());
       Masinos.push_back(a);
   }
   vector<Automobilis>::iterator it, end;
   for (it = Masinos.begin(), end = Masinos.end(); it != end; ++it)
   {
       printf("\n------------------\n Eil. numeris: %d\nMasina: %s\nMetai: %d\nReg. numeris: %s\nSpalva: %s \nKuro tipas: %s\n------------------\n\n",
              (*it).eilNr,
              (*it).pavadinimas.c_str(),
              (*it).metai,
              (*it).automarke.c_str(),
              (*it).spalva.c_str(),
              (*it).kuro.c_str(),
              (*it).eilNr,
              (*it).pavadinimas.c_str(),
              (*it).metai,
              (*it).automarke.c_str(),
              (*it).spalva.c_str(),
              (*it).kuro.c_str());
   }
   system("pause");
}

 

 

------------------
Eil. numeris: 1
Masina: Subaru Legacy
Metai: 2004
Reg. numeris: MIG29
Spalva: Juoda
Kuro tipas:  Benzinas
------------------


------------------
Eil. numeris: 2
Masina: BMW 745
Metai: 2002
Reg. numeris: 888888
Spalva: Juoda
Kuro tipas:  Dyzelinas/Dujos
------------------


------------------
Eil. numeris: 3
Masina: MERCEDES BENZ S320
Metai: 1999
Reg. numeris: 007
Spalva: Pilka
Kuro tipas:  Dujos
------------------
...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...