阅读量:0
在 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()
方法则更加通用,可以处理任何类型的输入。