溫馨提示×

C++中如何限制stdin輸入的數(shù)據(jù)長度

c++
小樊
109
2024-09-10 17:27:26
欄目: 編程語言

在 C++ 中,要限制從 stdin 讀取的數(shù)據(jù)長度,可以使用 cin.width() 函數(shù)或者使用 getline() 函數(shù)

方法一:使用 cin.width()

#include<iostream>
#include <iomanip>

int main() {
    const int max_length = 10; // 設(shè)置最大輸入長度為 10
    char input[max_length + 1]; // 分配足夠的空間,包括字符串結(jié)尾的 '\0'

    std::cout << "請輸入不超過 "<< max_length << " 個字符的文本:";
    std::cin.width(max_length + 1); // 設(shè)置讀取寬度
    std::cin >> input; // 讀取輸入

    std::cout << "你輸入的內(nèi)容是:"<< input<< std::endl;

    return 0;
}

方法二:使用 getline()

#include<iostream>
#include<string>

int main() {
    const int max_length = 10; // 設(shè)置最大輸入長度為 10
    std::string input;

    std::cout << "請輸入不超過 "<< max_length << " 個字符的文本:";
    std::getline(std::cin, input); // 讀取一行輸入

    if (input.length() > max_length) {
        input.resize(max_length); // 截斷超出部分
        std::cout << "輸入超出長度限制,已截斷。"<< std::endl;
    }

    std::cout << "你輸入的內(nèi)容是:"<< input<< std::endl;

    return 0;
}

這兩種方法都可以實現(xiàn)限制 stdin 輸入的數(shù)據(jù)長度。使用 cin.width() 方法時,需要注意輸入的數(shù)據(jù)類型,因為它會根據(jù)數(shù)據(jù)類型自動處理。而使用 getline() 方法則更加通用,可以處理任何類型的輸入。

0