gpt4 book ai didi

C++检测用户按下的ENTER键

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:33 25 4
gpt4 key购买 nike

我有一个循环,要求用户输入名称。我需要在用户按下 ENTER 键时停止......或者输入 20 个名称时。但是,当用户按下 ENTER 键时,我的方法不会停止

//loop until ENTER key is entered or 20 elements have been added
bool stop = false;
int ind = 0;
while( !stop || ind >= 20 ){

cout << "Enter name #" << (ind+1) << ":";
string temp;
getline(cin, temp);
int enterKey = atoi(temp.c_str());

if(enterKey == '\n'){
stop = true;
}
else{
names[ind] = temp;
}

ind++;


}

最佳答案

使用atoi 将读取的字符串转换为整数:

int enterKey = atoi(temp.c_str());        

如果 temp 是像 "1234" 这样的字符串,这会将 enterKey 设置为 1234。然后将 enterKey\n 的 ASCII 值进行比较。这很可能没有做任何有用的事情。

此外,std::getline 只读取字符,但不包括下一个 '\n'。如果用户只是按下回车键而没有输入任何其他字符,std::getline 将返回一个空字符串。如果一个字符串为空,可以使用它的 empty() 方法轻松测试:

getline(cin, temp);
if (temp.empty()) {
stop = true;
}

关于C++检测用户按下的ENTER键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803502/

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