Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

getline() - kako učitati naredne redove ?

[es] :: C/C++ programiranje :: C/C++ za početnike :: getline() - kako učitati naredne redove ?

[ Pregleda: 1399 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

caponac
developer,jp ep
Thunderdome.

Član broj: 161272
Poruke: 15
92.36.138.*

Sajt: www.codeproject.com


Profil

icon getline() - kako učitati naredne redove ?05.04.2009. u 18:59 - pre 183 meseci
Pozdrav svima. Pokušavam da isparsiram txt file, koji izleda ovako:
Voltage 5
//ID Type Vn V Theta[rad]
0 1 1 1 0
1 0 1 1 0
2 0 1 0 1
3 0 1 1 1
4 0 1 0 0

//linije sa objašnjenjima
//dodatni tekst koji me ne interesuje...

Lines 3
//id V I
0 3 4

Dakle, moj problem se sastoji u tome da ja bez problema učitam vrijednosti za Voltage (prvih 5 linija koda) i smjestim ih u odgovarajuće varijable. Problem nastaja kada trebam "preskočiti" naredne 4 linije koda i učitati podatke iz linija. Moj program jednostavno ne učitava te podatke, a prema mome shvaćanju, trebao bi.
Slijedi code:

Code:
stringstream ss;
  ifstream file;  
  string line,name;
  int num;
  ifstream values ( "values.txt", std::ios::in);  //opening file
  while(getline(values,line)) // Reads lines into line 
  {         
    ss.str(line);  // Use s as source of input.
    ss>>name>>num;
    getline(values,line);
    if(name == "Voltage")
      {
        int _id=0;
        int _type=0; 
        int _Vn;
        float _V,_Theta;
        for (int i=0;i<num;i++)
          {
                getline(values, line);
            ss.clear();
            ss.str(line);
            if(line.substr(0,2) !="//")
            {
            ss >> _id >>_type>>_Vn>>_V>>_Theta;
                        cout<< _id << " " << _type << " " << _Vn <<" " <<" " << _Theta <<'\n';   //sve ispiše kako treba
            }
          }
      }
       else if(name == "Lines")   // na ovom mjestu vrijednost za name je i dalje Voltage 
    {
        cout<<"I found the lines data !";
    }


Unaprijed se zahvaljujem.
Let's get ready to rumble...
 
Odgovor na temu

vpoqol5

Član broj: 216722
Poruke: 10
*.adsl.net.t-com.hr.



Profil

icon Re: getline() - kako učitati naredne redove ?16.04.2009. u 21:08 - pre 183 meseci
getline će ti ostati na mjestu gdje si ga zadnje koristio, korištenje druge funkcije ne pomiće njegov ulaz, kako god
da bi ignorirao 4 linije trebao bi koristiti values.ignore isto kao i values.getline ti je jednostavnije nego getline(values,line)
s tim da ti je takva svaka funkcije preopterećena, odnosno omogućuje više paramatara kao npr
ako je ovo teksutalna datoteka

Ja sam programer# telkdasldačldć

Code:

string line;
ifstream fin("tmp.ini"); //ifstream ti automatski definiria datoteku za čitanje pa nema potrebe za ios::in
fin.getline(line,100,'#'); //ovo će ti učitati s100 znakova ili do znaka '#'
fin.ignore(100,'\n');  //ovo će ti npr. ignorirati 100 znakova do nove linije


Nadam se da će to pomoć

lp
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: getline() - kako učitati naredne redove ?

[ Pregleda: 1399 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.