Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C] Wyszukiwanie linii w pliku tekstowym.

kadu 14 Lut 2010 02:34 2132 1
  • #1 14 Lut 2010 02:34
    kadu
    Poziom 10  

    Chcę wyszukać z pliku określoną linijkę, która brzmi "Dane są następujące:". Kod:

    Code:
         string slowo="";
    
         char bufor[2]={0};
         i=30;
         do
         {
             if((char)getc(plik)=='\n')
           {
              bufor[0]=(char)getc(plik);
             slowo.clear();
             while(buff[0]!='\n')
             {
                   bufor[0]=(char)getc(plik);
                slowo+=bufor;
             }
           }
         }while(slowo!="Dane są następujące:")

    To powyżej mi nie działa, program się zawiesza, kombinuje już od 2 godzin i się poddaję. Wiem, że w C++ jest getline i sprawa załatwiona, ale ja używam języka C (a więc otwieram plik funkcją fopen) natomiast obsługi plików w C++ nie umiem i chciałbym powyższe zrealizować w C.

    Poprawiłem tytuł. - arnoldziq

    0 1
  • #2 14 Lut 2010 07:52
    Dżyszla
    Poziom 42  

    Program zupełnie nie jest zabezpieczony przed niewystąpieniem szukanego zwrotu.
    Podobnie program nie odnajdzie, jeśli zwrot będzie na pierwszej linijce (szukasz dopiero po odnalezieniu znaku nowej linii).
    nie wiem, czym jest zmienna bufor i po co zmienna char buff[2]

    Cały program po prostu jest - nazywając po imieniu - głupim algorytmem. Wystarczy zapisać poszukiwany ciąg w tablicy (wraz ze znakiem nowej linii) i porównywać znak po znaku równolegle - jeśli nie będzie się zgadzać - robisz pętlę pomijającą do \n lub EOF. Jeśli cała tablica się pokryte (wskaźnik pomocniczy osiągnie jej koniec) - wówczas znalazłeś i wychodzisz z funkcji zwracając jako wynik prawdę.

    0
  Szukaj w 5mln produktów