📜  cin.get c++ (1)

📅  最后修改于: 2023-12-03 15:14:09.261000             🧑  作者: Mango

C++的get函数 - cin.get()

在C++中,我们经常需要从标准输入设备(cin)读取数据,同时又要避免输入的数据与当前缓冲区中的数据混淆,这时我们可以使用cin.get()函数。

语法
cin.get(参数1, 参数2, 参数3)

其中:

  • 参数1 :字符指针,用于指定读取数据后存储的缓冲区
  • 参数2 :整数类型,用于指定最多读取的字符数
  • 参数3 :终止字符的ASCII码
功能

cin.get()函数主要用于从设备中读取指定个数的字符,存储到指定的缓冲区中,直到读取到终止字符才停止。如果读取到的字符个数小于指定个数,则终止字符不会存储在缓冲区中。

示例

以下是一个简单的示例,展示了如何使用cin.get()函数从标准输入读取数据,最终将所读取的内容输出到屏幕上。

#include <iostream>
using namespace std;

int main()
{
    char buffer[20];
    int num = 0;

    cout << "请输入一串字符: ";
    cin.get(buffer, 20);  // 从标准输入读取字符,最多读取 20 个,以换行符为终止符
    cout << "您输入的字符是: " << buffer << endl;

    while(cin.get() != '\n')  // 清空输入缓冲区,直到遇到换行符
        continue;

    cout << "请再输入一串字符: ";
    cin.get(buffer, 5, 'q');  // 从标准输入读取字符,最多读取 5 个,以字符 'q' 为终止符
    cout << "您输入的字符是: " << buffer << endl;

    return 0;
}
注意事项
  • 如果读取到的字符个数大于指定个数,则输入缓冲区中会留下剩余的字符。
  • 如果读取到的字符个数等于指定个数,且末尾不是终止字符,则输入缓冲区中会留下多余的字符,可能会影响后续的输入处理。
  • 在读取完缓冲区中的数据后,如果希望继续读取输入设备中的数据,需要清空输入缓冲区。
  • 数据输入流(如文件)和标准输入流(键盘)之间不能相互转换,在使用cin.get()函数读取文件时,需要将其与文件流结合使用。