Çünkü üsteki printf 1 karakter fazla ve aşağıdaki printf onun tüm karakterlerini kaplayamıyor. \r'nin yaptığı şey karakterlerin üstüne yazmak. Anladın mı?
Yani asıl yapman gereken bu;
C:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int x,y,z;
x = 5;
y = 7;
z = 2;
x = y;
y = x + z + 1;
printf("x:%d y:%d z:%d", x, y, z);
system("clear");
x = 4;
y = 5;
z = 6;
printf("x:%d y:%d z:%d", --x, ++y, z++);
return 0;
}
Ama bu da anlamsız. Bunun yerine üstteki printf'i sil.
@KAANYTD ilk printf'in yazdırdığı şey bu: x:7 y:10 z:2
İkinci printf de bunu yazmaya çalışıyor: x:3 y:6 z:6
\r'nin yaptığı şey de ilk printf'in yazdıklarını silip, 2. printf'i yazmak. Ama 2. printf karakterleri 1 tane az olduğu için ilk printf'in tüm karakterlerini silemiyor ve sondaki 2 kalıyor.
Çünkü üsteki printf 1 karakter fazla ve aşağıdaki printf onun tüm karakterlerini kaplayamıyor. \r'nin yaptığı şey karakterlerin üstüne yazmak. Anladın mı?
Yani asıl yapman gereken bu;
C:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int x,y,z;
x = 5;
y = 7;
z = 2;
x = y;
y = x + z + 1;
printf("x:%d y:%d z:%d", x, y, z);
system("clear");
x = 4;
y = 5;
z = 6;
printf("x:%d y:%d z:%d", --x, ++y, z++);
return 0;
}
Ama bu da anlamsız. Bunun yerine üstteki printf'i sil.