C++中如何限制stdin输入的数据长度

1949idc 2年前 (2024-09-19) 阅读数 289 #编程语言

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

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业