Dosyayı "read" modunda açıyorum zaten, curve dosyanın ilk sütununu işaret ediyor. Aynı şeyi yapmıyor mu?
FILE* fp = fopen("file", "r");fseek(fp, 0, new_pos);int c = fgetc(fp);int size = 0;
while (!feof(fp))
{
fgetc(fp);
size++;
}Eksik olan şey dosya pozisyonu değiştirme (seek) işlemi yapılmaması. Bu haliyle "while (true) size++;"dan farksız.
Dosyayı "read" modunda açıyorum zaten, curve dosyanın ilk sütununu işaret ediyor. Aynı şeyi yapmıyor mu?
FILE* fp = fopen("file", "r");fseek(fp, 0, new_pos);int c = fgetc(fp);int size = 0;
while (!feof(fp))
{
fgetc(fp);
size++;
}Dosyayı açtıktan sonra okuma işlemi yapmadığınız ya da fseek ve fsetpos gibi fonksiyonlar ile spesifik bir pozisyona getirmediğiniz sürece oluşturulan dosya Handle'ı dosya başlangıç pozisyonunu işaret eder.
Şöyle anlatayım;
FILE* fp = fopen("file", "r");
Şeklinde bir handle oluşturulduğunda bu dosyanın mevcut pozisyonu 0 yani başlangıç pozisyonudur. Bunu ilerletmek için;
fseek(fp, 0, new_pos);
Şeklinde yeni bir pozisyona ilerletebilirsiniz ya da;
int c = fgetc(fp);
İle Dosya'dan 1 karakter değer okutup yeni pozisyonu +1'e taşıyabilirsiniz.
Yani bu mantıkla, aşağıdaki şekilde yazarak istediğiniz amaca uygun yapabilirsiniz;
int size = 0; while (!feof(fp)) { fgetc(fp); size++; }
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.