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.

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