簡體   English   中英

如何刪除輸入的字母/字符串或任何輸入

[英]How to remove entered letters/strings or any inputs

我已經用C編寫了一個hangman程序。我也已經開始使用C ++進行編碼。 我的游戲要求輸入一個單詞(字符串),然后輸入,然后出現hangman屏幕。 但是因為我之前輸入過單詞,所以我們可以通過按UP箭頭鍵進行作弊並查看以前的輸入。 有什么辦法可以從記錄中刪除先前輸入的單詞? (在Windows上)也請告訴我有關這些類型的事物的特定術語,謝謝;

在Windows Vista / Server 2008或更高版本上,將SetConsoleHistoryInfo的歷史記錄緩沖區大小設置為0。 不確定其他平台。

另一種方法(使用SetConsoleHistoryInfo )是使用getch()實現程序的輸入-根本沒有歷史記錄。

例:

const int bufferSize = 2048;
wchar_t buffer[bufferSize];
memset( buffer, 0, sizeof(buffer) );
printf( "\nEnter string:\n" );

int charsEntered = 0;
while(1) {
    wchar_t ch = _getch();
    if( ch == L'\r' ) {
        break;
    } else if( ch == 8 ) {
        if( charsEntered == 0 ) {
            continue;
        }
        _putch( ch );
        _putch( L' ' );
        _putch( ch );
        charsEntered--;
    } else {
        buffer[charsEntered++] = ch;
        _putch( ch );
    }
}

wprintf( L"\nString: %s", buffer );

暫無
暫無

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

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