Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: sprawdzanie całego plik w poszukiwaniu danych  (Przeczytany 1388 razy)

KelThuzad

  • Gość
sprawdzanie całego plik w poszukiwaniu danych
« dnia: 2016-08-22, 20:46:06 »
Mam pewien problem z wyszukiwaniem danych w pliku jak mój plik wugłada tak:
dane.txt
800
pusta linia
pusta linia
i tak dalej

To wszystko działa ok
Ale jak zrobie plik taki:
dane.txt
pusta linia
pusta linia
pusta linia
pusta linia
800
To program zwraca mi że dane nie są liczbami więc chciałem zrobić by przeszukiwał cały plik ale mam problem. Po pierwsze to nie działa :) a po drugie znowu QT creator nie podpowiada mi jak chce zrobić file.eof() nie widzi eof i tak samo w programie nie działa mi podpowiedz w file.good() chociaż ta ostatnia funkcja działa poprawnie.
std::string my_file::add_budget()
{
    std::string line;
    while ( !file.eof() )
    {
        std::getline( file , line );
    }
    return line;
}

Filystyn

  • Gość
Odp: sprawdzanie całego plik w poszukiwaniu danych
« Odpowiedź #1 dnia: 2016-08-23, 13:46:35 »
W C++ lepiej sprawdzian eof se darować bo się źle kończy (poszukać innej metody na koniec pliku, możliwe że umieszczenie getline w while da rade). Jak to zrobić w C?

// radośnie założę, że 300 bajtów wystarczy.
const size_t buff_siz = 300;
char buff[buff_siz];
for(;fgets( buff, buff_size, file )!=NULL;) {
 
  //tu coś rób z danymi.
 
}

//wszelkie błędy jak sprawdzać przeczytasz w man funkcja.
« Ostatnia zmiana: 2016-08-23, 14:12:33 wysłana przez Filys »