如何强制用户在字符串中输入8个字符
how to force user to input exactly 8 characters into string
如何限制用户在字符串中输入8个字符?这样的东西行得通吗?
string MyString;
getline(std::cin, MyString, 8);
或者可能有一个不同的想法来实现它
提前感谢
澄清:我想让用户在字符串中输入最多8个字符,但他可能会输入更少的字符。
您可以使用循环。。
while (MyString.length() != 8) {
std::cout << "Enter exactly 8 characters:";
getline(std::cin, MyString);
}
考虑到我的经验,很难想象这会有所帮助(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
请求用户输入8个字符和阻止用户输入超过8个字符是有区别的。
向用户请求8
您可以向用户请求8个字符,但在输入换行符之前,用户可以输入用户想要的任意多个字符。这是标准控制台输入的行为。
控制台已经缓冲了所有字符。根据提取方法,您将从输入缓冲区中提取8个字符到变量中。其余字符仍在缓冲区中。
防止用户输入超过8个
这通常用于输入密码。标准的C++输入工具在这里没有帮助。
您将需要对输入源进行特定于平台的控制。您需要读取每个字符,测试换行符,并可以选择回显该字符、类似"*"的统一字符,或者不显示任何字符。
由于它是特定于平台的,请查找您的平台的API。
#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;
}
}
您可以添加一个bool对象来使用if语句测试您的字符串。如果字符串大小小于或等于8,则会将bool语句通告为false,从而允许while循环退出。
相关文章:
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 当我输入 3 个偶数时,它表明我输入了 4
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 我需要帮助在一个类中输入两个字符串并获取其输出
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- 如何使用运算符>>在自定义字符串中输入多个单词?
- 输入两个不专门化大小的矩阵
- 在C++中使用哪个函数来输入多个单词,比如C中的fgets
- 如何输入多个字母并在某个字母(q或q)后停止
- 如果用户输入两个或多个由空格分隔的字符串C++如何防止缓冲区溢出?
- 从文件 (C++) 输入两个单词字符串
- 在由空间隔开的线中输入三个整数
- 当输入 1 个没有空格的名称时,它会显示"std::out_of_range"
- 如何使用ISTream对象输入多个字符到对象的数组中?(and 0作为哨兵值.下面的我的代码将无效)
- 如何在 C++ 中限制用户在字符串(动态字符数组)中输入 8 个字符
- 如何修复密码条目,它一次输入两个字符
- 输入两个数字后程序关闭
- 使用 cin 错误输入多个浮点数
- C 用户输入4个数字,并且该程序检查它们大于少于
- "Pancake glutton"锻炼;如果用户输入两个或多个相等的值该怎么办