>ch; cin.i-6ren">
gpt4 book ai didi

c++ - 允许用户跳过输入并直接按 Enter 键

转载 作者:行者123 更新时间:2023-11-28 03:12:56 26 4
gpt4 key购买 nike

有什么方法可以让用户只按 Enter 键而不输入任何内容并继续执行 std::cin 中的程序?谢谢!

_tprintf(_T("\nENTER CHOICE: "));
cin>>ch;
cin.ignore();

当我用这段代码运行程序时,很可能我根本不想在那个字段上输入任何东西,当我按下回车键时,光标只会产生新的行。

最佳答案

如果您“读入”std::noskipws,那么读取将停止跳过空格。这意味着当您读入单个字符时,您可以读入空格和换行符等。

#include <iostream>
#include <iomanip>

int main() {
std::cin >> std::noskipws; //here's the magic
char input;
while(std::cin >> input) {
std::cout << ">" << input << '\n';
}
}

当输入运行时:

a

b

c

产生:

>a
>

>

>b
>

>

>c

所以我们可以看到它读入了字母a,然后是换行符后的回车键,然后是空行,然后是字母b,等等

如果您希望用户在输入数字后按下回车键,则必须在您的代码中进行处理。

如果用户只是每行输入一个“东西”,实际上有一种更简单的方法:

#include <iostream>

int main() {
std::string line;
while(std::getline(std::cin, line)) {
std::cout << line << '\n';
}
}

这将从输入中读取字符直到行尾,允许您读取带空格的行,或根本没有的行。请注意,在您使用 std::cin >> 之后,它通常会在输入中留下换行键,因此如果您在它返回后立即执行 std::getline一个空字符串。为避免这种情况,您可以使用 std::cin.ignore(1, '\n') 使其在尝试使用 std::getline 之前忽略换行符.

关于c++ - 允许用户跳过输入并直接按 Enter 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17870888/

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