[operacje IO] odczytywanie zmiennych zapisanych w pliku

0

Witam,

potrzebuje odczytac pewne dane z pliku i chce zeby bylo to zrobione jak najszybciej. Plik jest bardzo duzy.

Robie wiec to tak, ze plik czytam linie po linii, a otrzymana linie (char []) przeszukuje za pomoca sscanf zeby znalezc konkretne zmienne, konretnego typu.

Czy jest jakas szybsza metoda ?

Do odczytu "line by line" uzylem:

  1. ifstream fin("data.txt");
    for (blablabla)
    fin.getline(oneline, 255, '\n');

  2. FILE *filein;
    filein = fopen("data.txt", "rt");
    for (blablabla)
    readstr(filein,oneline);

dla metod 1 i 2 nie zauwazylem znacznych roznic czasowych. Czy jest jaka szybsza metoda ?

PS. sscanf wyglada tak:
sscanf(oneline, "%f %f %f", &x, &y, &z);

0
fin >> x >> y >> z;

lub

fscanf(filein, "%f %f %f", &x, &y, &z); 
0

@winerfresh

dzieki za odpowiedz, ale niestety nie widac poprawy czasowej. Czy pomoze zastosowanie innej biblioteki ?

0

Możesz wczytać cały na raz, o ile wiesz ile potrzeba na to pamieci, za pomocą fread() ale tutaj nie dasz rady tego sformatować. Wczytasz tylko pewną ilość danych do pamięci, a potem dopiero musisz sobie z tego odczytać swoje zmienne.

0

dobrze wiedziec :)

dziekuje bardzo za odpowiedzi, byly pomocne.

temat mozna zamknac.

1 użytkowników online, w tym zalogowanych: 0, gości: 1