gpt4 book ai didi

c++ - 单击退格键时添加删除字符

转载 作者:行者123 更新时间:2023-12-02 10:21:49 25 4
gpt4 key购买 nike

我需要添加在单击退格键时删除字符的代码:

double inputDoubleNumber() {
double result = 0;
int char_code;
std::string buffer = "";
bool dot = false;
do {
char_code = _getch();
if (char_code > 47 && char_code < 58 || char_code == 46 ) {
if (char_code == 46 && dot == true) continue;
if (char_code == 46) dot = true;
buffer += (char)char_code;
std::wcout << (char)char_code;
}
} while (char_code != 13);
std::wcout << std::endl;
result = atof(buffer.c_str());
return result;
}

我怎样才能做到这一点 ?

最佳答案

尽管警告不要使用魔数(Magic Number),您可以在 _getch() 之后立即添加以下代码块称呼:

    if (char_code == '\b' && !buffer.empty()) { // Ignore B/S if buffer is empty
if (buffer.back() == '.') dot = false; // Need to check/reset "dot" flag
buffer.pop_back(); // remove last character...
std::wcout << L'\b' << L' ' << L'\b'; //... and clear from screen
}

或者,如果您想删除 全部 输入带有 的字符一击 的退格键,您可以使用它,而不是:

   if (char_code == '\b') {
dot = false;
while (!buffer.empty()) {
buffer.pop_back();
std::wcout << L'\b' << L' ' << L'\b';
}
}

关于c++ - 单击退格键时添加删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59847740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com