C++で入力バッファをクリアする方法

C++ではcin.ignore()を使って入力バッファをクリアします。これにより改行文字まで、バッファに残った全ての文字が無視されます。以下にサンプルコードを示します。

#include <iostream>

int main() {
    int num;

    std::cout << "请输入一个整数:";
    std::cin >> num;

    // 清空输入缓冲区
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

    std::cout << "请输入一个字符串:";
    std::string str;
    std::getline(std::cin, str);

    std::cout << "输入的整数是:" << num << std::endl;
    std::cout << "输入的字符串是:" << str << std::endl;

    return 0;
}

上記の例では、std::cin.ignore() 関数を使用して改行文字を消去し、その後の std::getline() 関数で標準入力から文字列を読み込んでいます。

bannerAds