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

C++ pridruzivanje varijablama vrijednost iz file-a

[es] :: C/C++ programiranje :: C++ pridruzivanje varijablama vrijednost iz file-a

[ Pregleda: 2874 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Damdoo

Član broj: 34393
Poruke: 1
*.as-sa-03.customer.lol.ba.



Profil

icon C++ pridruzivanje varijablama vrijednost iz file-a18.10.2004. u 14:53 - pre 237 meseci
Pozdrav svima!

Evo jedno pocetnicko pitanje.
Imam slijedeci problem...treba da iz odredjenog file-a u c++ program ucitam brojke/znakove koji su u slijedecem formatu:
file.txt
**************
3
x y s
z v m
r t k
**************
-izmedju su "space-ovi".
3 oznacava broj linija u fajlu (treba mi za petlju u programu). Sada, treba da varijable (iz file-a) ucitam u program (ma koliko ih god bilo, zavisi od linija u fileu). Prva dva znaka u redu su double a treci je char.

Ovdje je problem: ucitam ja varijable iz prve linije(x y s) uspjesno, ali kako ostale? Kako skocim na drugi(treci...) red?

2^5=32
 
Odgovor na temu

markom
Marko Milivojević
Network Engineer
Google
Mountain View

Član broj: 18427
Poruke: 4227
*.lina.net.

Sajt: https://markom.rs


+16 Profil

icon Re: C++ pridruzivanje varijablama vrijednost iz file-a18.10.2004. u 15:00 - pre 237 meseci
Code:
while (!feof(f) { fgets...

 
Odgovor na temu

zvrba
The Lord of Chaos

Član broj: 31716
Poruke: 105
*.fina.hr.



Profil

icon Re: C++ pridruzivanje varijablama vrijednost iz file-a19.10.2004. u 07:49 - pre 237 meseci
Evo ti rjesenje sa C stdio.. moze se i sa C++ streamovima, al tu nisam tolko dobar..

Code:

#include <stdio.h>

void read_file(FILE *f)
{
  char buf[512];  // ovo bi trebalo bit dovoljno za 2 double i char
  double x, y;
  char ch;
  unsigned int n;

  fgets(buf, sizeof(buf), f);
  sscanf("%u", &n);
  while(n--) {
    if(!fgets(buf, sizeof(buf), f)) {
      // GRESKA: u fajlu ima manje redaka nego sto je napisano
    }
    if(sscanf("%lf %lf %c", &x, &y, &ch) != 3) {
      // GRESKA u ulaznom formatu..
    }
    // x, y i ch su podaci iz retka u fajlu
  }
}
 
Odgovor na temu

ivbrcic
Ivan Brcic
Siemens
Zagreb

Član broj: 38567
Poruke: 35
*.siemens.at.



Profil

icon Re: C++ pridruzivanje varijablama vrijednost iz file-a03.11.2004. u 10:42 - pre 237 meseci
Evo rjesenja.
Iako mislim da ti je prvi broj nepotreban.

#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

struct FileData {
double f1;
double f2;
char c;
};

// ovo je operator>> koji nam sluzi za unos
std::istream& operator>>(std::istream& is, FileData &fd)
{
is >> fd.f1 >> fd.f2 >> fd.c;
return is;
}

// ovaj operator ti ne treba, on sluzi samo da bi vidio
// da li je sve OK uneseno
std::ostream& operator<<(std::ostream& os, const FileData &fd)
{
os << fd.f1 << ' ' << fd.f2 << ' ' << fd.c;
return os;
}

int main ()
{
int n;
std::ifstream ifstr("file.txt");
std::vector<FileData> v;

ifstr >> n;

while (n--)
{
FileData fd;
ifstr >> fd;

// ovo nam sluzi da unesemo stvarni broj redaka
if (ifstr.fail()) {
std::cout << "Some Error code!" << std::endl;
break;
}
v.push_back(fd);
}

//ispisujemo samo ucitane podatke
std::ostream_iterator<FileData> ispis(std::cout, "\n");
std::copy(v.begin(), v.end(), ispis);
}

To je to valjda ces shvatiti. Ako si pocetnik, malo teze ces shvatiti zadnje dvije linije, ali sa vremenom...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C++ pridruzivanje varijablama vrijednost iz file-a

[ Pregleda: 2874 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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