我是否缺少 cin.get() 的东西
Am I missing something with cin.get()?
我正在学习C++cin.get()
,我正在尝试将两个字符(包括空格(回显给用户。
运行代码时,它不会正确回显输入。
char letter1, letter2;
cout << "Enter Letters: ";
cin >> letter1 >> letter2;
cin.get(letter1);
cin.get(letter2);
cout << "letter1 is: " << letter1 << " end.n";
cout << "letter2 is: " << letter2 << " end.n";
我打算输入 2 和 3,但是,它给了我不同的结果:
输入(由于某种原因,我不得不输入 3 两次(
Enter Letters:2
3
3
输出
letter1 is:
end.
letter2 is: 3 end.
格式化
的输入运算符跳过前导空格(除非这样做被明确禁用,例如,使用 in >> std::noskipws;
(。未格式化的输入函数不会跳过前导空格。因此,第一次使用 std::cin.get(letter1)
读取换行符,第二次使用读取输入的数字。
您可以显式跳过前导空格,例如:
if ((std::cin >> std::ws).get(letter1)) {
std::cout << “read ‘“ << letter1 << “‘n”;
else {
std::cout << “failed to read a charactern”;
}
该示例还添加了一些基本的错误处理:输入应始终预期失败,并且需要适当地处理故障。显然,在尝试读取输入后需要检查故障。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- Cpp-Tuple使用带有变量的get
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- C++中是否有任何函数等同于python中字典的get函数?
- C++:传递像 unique_ptr:get() 这样的参数来函数是否安全?
- 线程是否真的在调用 std::future::get() 后启动
- 是否可以在调用 future.get() 之前销毁 std::p romise ?
- 我是否缺少 cin.get() 的东西
- <I>在"std::tuple"上使用"std::get"是否保证对于"I"的不同值是线程安全的?
- 在C++中编写简单的 get/set 方法时,是否应始终使用 const 引用作为参数
- 在C++中定义虚拟get和set函数是否被认为是一种好的做法
- 是否可以在没有预处理器宏的情况下为"virtual" get-setter 定义默认实现
- c++中的.get()在读取文件时是否返回null ?
- 当auto_ptr未初始化时,get()是否可靠