c++ cin.get()的用法小结

本文详细介绍了C++中cin.get()函数的使用方法及其与cin.getline()的区别。通过示例说明了如何处理输入缓冲区中的换行符问题,并展示了如何结合使用这两个函数来实现更灵活的输入读取。
#include <iostream>
int main()
{/******************
 1.cin.getline()与他相比,比较粗一些
 举例:先定义字符数组 char a[20];
 然后 cin.getline(a,20);即把数组的内容
 读入进来。它通过换行符来确定行尾,但不保存
 换行符
 2.cin.get()则将换行符留在输入队列中
 举例:假设我们两次调用cin.get():
 cin.get(a,20);
 cin.get(b,20);
 如果不借助帮助,cin.get(b,20)无法读入,因为
 换行符留在了输入队列,第二次调用时读的第一个字符便是
 换行符,所以无法读入新的内容。那么,我们应该如何
 解决这类问题呢?
 同样的规则,借助不带参数的cin.get();在上例中的两句
 之间加入cin.get();用它吃掉换行符。


 **************************/
	using namespace std;
	char name[20];
	char club[20];
	cout << "your name" << endl;
	cin.get(name, 20).get();
	cout << "your favoiate club" << endl;
	cin.get(club, 20).get();
	cout << "hello," << name << endl;
	cout << "This is " << club << " for you!" << endl;
	cin.get();
	return 0;
}

### C++ 中 `cin.get` 函数的用法 #### 获取单个字符 `cin.get()` 可用于读取输入流中的下一个字符。此方法不会跳过空白字符,因此可以用来逐字读入字符串。 ```cpp #include <iostream> using namespace std; int main() { char ch; cout << "Enter any character: "; ch = cin.get(); // Read single character from input stream cout << "You entered: " << ch << endl; } ``` #### 将字符存储到变量中 当希望将读取的结果保存至特定变量时,可以直接传递该变量作为参数给 `get` 方法: ```cpp char myChar; cout << "Please enter one letter: "; cin.get(myChar); cout << "Your choice was '" << myChar << "'.\n"; ``` #### 使用缓冲区读取多字符 如果想要一次性获取多个字符直到遇到指定分隔符,则可以通过向 `get(char *buffer, int num)` 提供指针以及最大长度来实现这一点。这允许程序安全地处理固定大小的数组而不用担心溢出风险。 ```cpp const int SIZE = 50; char buffer[SIZE]; cout << "Type up to " << SIZE-1 << " characters followed by Enter:\n"; cin.get(buffer, sizeof(buffer)); cout << "Here's what you typed into the array named 'buffer': \n" << buffer << "\n\n"; ``` #### 清除输入队列并忽略剩余部分 有时可能需要清除之前的输入以便重新开始新的输入操作;此时可以用 `ignore` 成员函数配合 `get` 来完成这一目的。下面的例子展示了如何丢弃当前行剩下的所有内容直至换行符为止。 ```cpp // Clear out leftover newline that may be still sitting there. cin.ignore(numeric_limits<streamsize>::max(), '\n'); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值