无法从 cin.get() 获取字符
Can't get char from cin.get()
我正在做一些关于 c++ 的初学者练习,这让我很困惑。我可以输入一个数字,但我没有选择在之后输入字符,它会跳到最后一行。
我知道我可以使用 cin>>符号,但我想知道为什么这不起作用。
#include<iostream>
using namespace std;
int main() {
cout << "Enter a number:n";
int number;
cin >> number;
char symbol;
cout << "Enter a letter:n";
cin.get(symbol);
cout << number << " " << symbol << endl;
return 0;
}
您应该从流中删除'n'
,输入数字后保留:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
没有它,您将读取换行符。您可以通过以下方式进行检查:
std::cout << (symbol == 'n') << std::endl;
n
将在第一个cin
后保留在缓冲区中。您可以通过在两次连续读取之间添加空cin.get()
来解决此问题。
cin.get(string1,maxsize);
cin.get();
cin.get(string2,maxsize);
或者您可以使用fflush
:
cin.get(string1,maxsize);
fflush(stdin);
cin.get(string2,maxsize);
相关文章:
- 有没有办法通过使用十进制 ASCII 代码自动类型扣除来获取字符?
- 如何获取C++字符数据类型的地址
- CPP:如何获取字符的最后一个索引
- 试图在重载函数中获取字符和字符串的输入
- C++使用第二个函数获取字符数组的长度
- 如何获取字符*的实际长度?strlen 和 sizeof(target)/sizeof(target*)之间的区别?
- 如何获取字符并将其转换为字符串?C++
- 如何在C++中从字符串指针中获取字符
- 获取字符数组地址,然后转换为指针字符
- 使用指针在字符串中获取字符的位置
- 获取字符数组C++数
- 使用scanf()在数组中获取字符(不与空格分开)
- "Error: expected a '{' introducing a lambda body"尝试从地图<字符,字符中获取字符时> C++
- 从文本文件输入以获取字符C++
- 使用getchar()获取字符并将其保存到每次C 的新行中的文件中
- 需要帮助从文件中获取字符和整数数据
- 如何获取字符C++像素
- 如何获取字符*(字符数组)的真实长度和总长度
- 从文件而不是getchar中获取字符
- 从流 C++ 获取字符