在 C++ 中,要限制從 stdin
讀取的數據長度,可以使用 cin.width()
函數或者使用 getline()
函數
方法一:使用 cin.width()
#include<iostream>
#include <iomanip>
int main() {
const int max_length = 10; // 設置最大輸入長度為 10
char input[max_length + 1]; // 分配足夠的空間,包括字符串結尾的 '\0'
std::cout << "請輸入不超過 "<< max_length << " 個字符的文本:";
std::cin.width(max_length + 1); // 設置讀取寬度
std::cin >> input; // 讀取輸入
std::cout << "你輸入的內容是:"<< input<< std::endl;
return 0;
}
方法二:使用 getline()
#include<iostream>
#include<string>
int main() {
const int max_length = 10; // 設置最大輸入長度為 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 << "你輸入的內容是:"<< input<< std::endl;
return 0;
}
這兩種方法都可以實現限制 stdin
輸入的數據長度。使用 cin.width()
方法時,需要注意輸入的數據類型,因為它會根據數據類型自動處理。而使用 getline()
方法則更加通用,可以處理任何類型的輸入。