如何删除输入的字母/字符串或任何输入

How to remove entered letters/strings or any inputs

本文关键字:输入 字符串 任何 删除 何删除      更新时间:2023-10-16

我已经在C中制作了一个挂接程序。我也开始在C 上进行编码。我的游戏要求一个单词(字符串),然后输入,然后出现Hangman屏幕。但是由于我以前输入了这个词,所以我们可以通过按UP Arrow键来作弊并查看先前的输入。有什么方法可以从记录中删除先前的输入单词?(在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 );