如何限制用户在字符串中输入8个字符? 可以这样的工作吗?
string MyString;
getline(std::cin, MyString, 8);
或者可能有不同的想法来实现它
提前致谢
澄清: 我想让用户在字符串中输入最多 8个字符,但他可以输入更少。
答案 0 :(得分:2)
你可以使用循环..
while (MyString.length() != 8) {
std::cout << "Enter exactly 8 characters:";
getline(std::cin, MyString);
}
答案 1 :(得分:0)
很难想到这会有助于考虑我的经验(1分钟!) 在codecademy.com上用“Python”语言可能会说:
my_string = "jackie"
len(my_string)
#would print 5
if my_string is <= ..... # if my string is greater or equal to print the following
print "name is too long "
希望产生除厌恶之外的东西
真诚敬业的noobie
答案 2 :(得分:0)
从用户请求8个字符和阻止用户输入超过8个字符之间存在差异。
从用户请求8
您可以从用户请求8个字符,但允许用户输入用户想要的字符数,直到输入换行符。这是标准控制台输入的行为。
控制台缓冲了所有字符。根据提取方法,您将从输入缓冲区中将8个字符提取到变量中。其余字符仍在缓冲区中。
防止用户输入超过8
这通常用于输入密码。标准的C ++输入设施在这里无济于事。
您需要特定于平台的输入源控制。您需要阅读每个字符,测试换行符,并可选择回显字符,统一字符,如&#39; *&#39;,或不显示任何字符。
由于它是特定于平台的,因此请查找适合您平台的API。
答案 3 :(得分:0)
#include <iostream>
#include <string>
int main(){
std::string str;
bool cStr = true; //check string
while (cStr){
std::getline(std::cin, str);
if (str.size() <= 8) cStr = false;
}
}
您可以使用if语句添加bool对象来测试字符串。如果字符串大小小于或等于8,则它会将bool语句通告为false,允许退出while循环。