Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Windows "\n" karakterini "\r\n" yani 2 byte olarak saklar. Text olarak açılan dosyada ise okurken 2 byte'ı tek byte yani "\n" olarak geri verir. Bu yüzden Windows'ta ftell() ile konum almak biraz yanıltıcı alabilir.
Örnek
Elimizde şöyle bir dosya olsun
Şu satırı dahil ederiz.
#include<stdio.h>
ÖrnekŞöyle yaparız.
FILE * f = ...;
long length = ftell (f);
ftell ve Windows Text DosyaWindows "\n" karakterini "\r\n" yani 2 byte olarak saklar. Text olarak açılan dosyada ise okurken 2 byte'ı tek byte yani "\n" olarak geri verir. Bu yüzden Windows'ta ftell() ile konum almak biraz yanıltıcı alabilir.
Örnek
Elimizde şöyle bir dosya olsun
line 1
l
Şöyle yaparız.#include<stdio.h>
int main(){
FILE *f = fopen("myfile.txt","r");
while(!feof(f)){
printf("\ncharacter number %d ",ftell(f));
putchar(fgetc(f));
}
fclose(f);
return 0;
}
Çıktı olarak şunu alırız. 6'dan sonra \n için iki byte okumuş ve 8'e atlamıştır.character number 0 l
character number 1 i
character number 2 n
character number 3 e
character number 4
character number 5 1
character number 6
character number 8 l
character number 9
Hiç yorum yok:
Yorum Gönder