gpt4 book ai didi

c++ - 从 cin 获取输入并将其存储在 char 变量中

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:48:53 25 4
gpt4 key购买 nike

我正在使用 cin 获取输入并将其存储到一个 char 变量中。我的问题是是否有任何输入可能导致 cin.fail() 返回 true。

我知道尝试将诸如 "foo" 之类的输入存储到 int 变量中会失败,但是在任何情况下都可以使用 char 变量吗?

最佳答案

operator>> 的重载这需要 char遵循格式化输入函数的正常行为,即它们调用rdbuf()->sbumpc()rdbuf()->sgetc()执行提取。自然地,如果eof遇到,则eofbit已设置。如果其中一个函数抛出异常,则 badbit已设置。如果设置了其中任何一个,则 failbit已设置。没有证据表明否则操作会失败。 (这包含在 C++11 标准草案的 [istream] 部分。)对于其他类型,如 int , do_get()用于转换字符(类似于 scanf )。当然,转换可能会失败,但如果输入已经是 char 则不需要转换。 .

现在的评论具有误导性。 CTRL+C 会终止 Linux 中的应用程序。 CTRL+Z 会在某些操作系统上发送一个表示 EOF 的字符。

你甚至可以使用表情符号,它会起作用:

#include <iostream>

int main()
{
char c;
if (std::cin >> c)
std::cout << "Huzzah!";
}

输入😁输出“Huzzah!”正如预期的那样。

关于c++ - 从 cin 获取输入并将其存储在 char 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32996261/

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