30/09/2018, 16:17
Tại sao i chạy từ 0 đến 256 mà khi in ra kết quả lại là ký tự?
FILE*f=fopen(file,"r");
unsigned char c;
int i;
while (1){
fscanf(f,"%c",&c);
if (feof(f))
break;
tree[c].f++;
}
fclose(f);
trước đó mình đã khai báo cấu trúc tree gồm f và unsigned char c
sau đó mình chạy
int i;
for(i=0;i<256;i++)
{
if (tree[i].f>0)
printf("%c: %d
",i,tree[i].f);
}
tại sao i chạy từ 0 đến 256 mà khi in ra kq lại là ký tự.có phải là do kiểu unsigned char không?
Bài liên quan
Ý bạn nói biến i in ra kí tự à? Do bạn dùng %c
bạn giải thích rõ hơn được không?
i là biến kiểu int nếu muốn in ra số bạn dùng %d. Do bạn dùng định dạng %c cho i nên nó sẽ in ra kí tự ứng với mã ASCII i