Miejsce kursora w pliku

Miejsce kursora w pliku
JA
  • Rejestracja:ponad 11 lat
  • Ostatnio:około rok
  • Postów:178
0

Witam !
Musze napisać program który wczytuje zawartość pliku i zapisuje ją w tablicy. Więc najpierw stworzyłem petle while żeby zliczała ilosc linii w pliku.

Kopiuj
while(plik.eof()==0)                            
        {
            getline(plik,napis);
            licznik++;
        }

Lecz teraz chciałbym go przesunąc na poczatek pliku. Jak to zrobić? Komenda seekp się nie da.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:dzień
0

seekg


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
JA
  • Rejestracja:ponad 11 lat
  • Ostatnio:około rok
  • Postów:178
0

również nie działa. Wpisuje plik.seekg(0,ios::beg); i nic

mychal
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Przedmonitorze Górne
0

If the eofbit flag is set before the call, the function fails (sets failbit and returns).
http://www.cplusplus.com/reference/istream/istream/seekg/


I fart u die.
mwl4
  • Rejestracja:około 12 lat
  • Ostatnio:15 dni
  • Lokalizacja:Wrocław
  • Postów:399
0
Kopiuj
#include <stdio.h>

int main(int, char**)
{
    FILE* pFile = fopen("plik.txt", "rb");
    if(pFile)
    {
        fseek(pFile, 0, SEEK_END);
        unsigned long ulSize = ftell(pFile);
        rewind(pFile);
        if(pFile > 0)
        {
            char* Buffer = new char[ulSize+1]; // Jeśli chcesz wyświetlać to co jest w pliku przez %s, pamiętaj że na końcu musi być \0!
            Buffer[ulSize] = 0;
            fread(Buffer, 1, ulSize, pFile);
            printf("%s", Buffer);
        }
        fclose(pFile);
    } else
    {
        printf("nie mozna otworzyc pliku!\n");
    }
    int stop;
    scanf("%i", &stop);
    return 0;
}

Asm/C/C++
kq
Śliczny memory leak.
mwl4
fuck, rzeczywiście... zapomniałem. Tak dla jasności po tym printfie: free(pointer), albo delete[] pointer;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.