繁体   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