簡體   English   中英

“\\ r”字面打印回車符號

[英]“\r” Literally Prints Carriage Return Symbol

我正在自學C語言。 除了我在設計Gameboy游戲(使用GBDEK)的背景下學習。

我正在研究一個簡單的Breakout克隆,並決定使用printf()函數來顯示玩家的分數。 當玩家的分數增加時,顯示的分數也應該明顯改變。 這是相關代碼:

int score = 0;

void main() {
   printf(" \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n%d", score);
}

void moveBall() {
    if((ballY == paddleY-8) && (ballX >= paddleX-8) && (paddleX+24 >= ballX-8)) {
       score+=10;           
       printf("\r%d", score);
    }
}

當游戲開始時,控制台會打印一堆空行來定位分數。 當分數改變時(在這種情況下,當球擊中球拍時),它應該返回到線的開頭並打印一個新的數字。 但是,它會打印回車符號(一個奇怪的CR符號)並且不會刪除之前的分數。 這是一個屏幕截圖,向您展示我的意思。

在此輸入圖像描述

我不確定如何解決這個問題。 救命?

drawing.h中有gotogxy函數(假定它是問題中使用的GBDK源代碼):

/* Sets the current text position to (x,y).  Note that x and y have units
   of cells (8 pixels) */
void
    gotogxy(UBYTE x, UBYTE y);

您可以嘗試在printf之前使用它:

gotogxy(0,7);
printf("%d", score);

除非終端將其解釋為其他內容,否則回車只是字符。 這似乎是回車無意義的情況。

您可能需要使用其他一些字符定位代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM