Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Początkujący w C++ - czytanie z pliku kolejnych wyrazów

30 Dec 2005 17:33 23712 7
  • Level 19  
    Mam do przygotowaia pewien projekt (związany z hashowaniem) - 90% mam już zrobione, nie moge sobie tylko poradzić z jedną funkcją.

    Otóż ta funkcja ma zczytywać kolejne wyrazy z pewnego pliku i wrzucać do tabeli (jedna litera - jedna komórka). Jak rozróżniać koniec wyrazu to wiem.

    Problem w tym, że nie wiem:
    a) jak czytać kolejne znaki (nie wyrazy, czy wiersze)
    b) jak rozpoznać koniec pliku (komenda rozpoznająca ilść znaków w plików)

    PS Przycisk SZUKAJ na forum dzisiaj nie działa.
  • Level 25  
    Lancuch (wiersz) odczytujesz za pomoca f. getline.
    Pozniej w petelce mozesz sobie odczytac znak po znaku.

    Obiekt cin (lub plik) posiada takze metody umozliwiajace odczyt pojedynczego znaku.

    Ale moze lepiej pokaze maly pzyklad:

    Code:
      is.open ( "filename.txt" );
    
      while ( is.good() )
      {
        int c = is.get();
        cout << c;
      }
      is.close();
  • Level 19  
    Kostrukcję rozumiem, ale nie znam komend:

    is.open (znam fopen)
    is.close (znam fclose)
    is.get
    is.good.

    Z tymi omendami nie mogę sobie poradzić (nie mogę skompilować programu...)

    Proszę o pomoc
  • Level 25  
    Przez chwile zrob to co robi ten koles w twojej ikonie (po lewej)...joke

    Zmien temat na Poczatkujacy w C i uzywaj fopen, fclose fread, fwrite, itp.

    Albo wkoncu poszukaj w necie co to jest fstream. Znakdziesz odpowiedz na pytanie jak skompilowac moj kod i co to za funkcje ktore podalem.

    Aha jesli piszesz juz o tym ze nie mozesz skompilowac programu i nie optrafisz sobie poradzic. napis chociaz na czym polega problem podczas kompilacji. Czy dostales jakies ostrzezenia bledy, napisz jakie.
  • Level 19  
    d:\borys\zapisz.cpp(15) : error C2065: 'good' : undeclared identifier
    d:\borys\zapisz.cpp(17) : error C2228: left of '.get' must have class/struct/union type
    d:\borys\zapisz.cpp(20) : error C2228: left of '.close' must have class/struct/union type
  • Level 25  
    Dodaj jeszcze zrodla ktore kompilowlaes w calosci i bedzie komplet - wtedy postawie diagnoze :)

    Narazie moge strzelac: nie dolaczyles bibliotek lub nie podales przestrzeni nazw.
  • Level 18  
    tym sprawdzisz czy plik sie otworzył
    Code:
    ifstream infile("wyniki.txt");
    
    if (!infile) return(instrukcje);

    musisz zadeklarować biblioteke fstream.h
  • Level 19  
    Ja to rozwiązałem w taki sposób.

    Code:
    void czytaj(char word[], int hashtable[], int xx)
    
    {

       int i=0, znak;
       FILE *plik = fopen("kolenda.txt", "r");
       znak = fgetc(plik);

       while (znak!=EOF)
       {
          erase(word);
          i=0;
          while(('A'<=znak && znak<='Z') || ('a'<=znak && znak<='z'))
          {
             
             word[i]=znak;
             znak=fgetc(plik);   
             i++; cout<<i<<endl;
          }

          //program...

          while ('A'>znak || (znak>'Z' && 'a'>znak) || znak>'z')
          {
             znak=fgetc(plik);
             if(znak==EOF) break;
          }
       }