我编写了一个代码,要求用户输入最多132个字符的文本行(数组末尾\ 0的数组大小为133)。
我使用了while循环来捕获用户是否未输入任何内容并按回车键。
#include <iostream>
using namespace std;
const short SIZE = 133;
int main()
{
char InputArray[SIZE];
cout << "Enter a line of text up to 132 characters: " << endl;
cin.getline(InputArray, SIZE);
count = strlen(InputArray);
while (count == 0)
{
cout << "You did not enter any entry! Try again." << endl;
cout << "Please enter a line of text up to 132 characters.: " << endl;
cin.getline(InputArray, SIZE);
count = strlen(InputArray);
}
cout << "You had entered: " << InputArray << endl;
cout << "The character count was: " << count << endl;
system ('pause');
return 0;
}
如果用户超过数组大小,如何捕获用户?并生成一条消息文本,指出用户输入无效,然后要求他们再次输入cin.getline?
谢谢!
答案 0 :(得分:0)
您可以使用get
功能。请参阅here。这将只读取您想要的输入。
示例:
#include <iostream>
constexpr size_t numberOfBytes = 6;
int main() {
std::cout << "\nPlease enter up to " << numberOfBytes-1 << " characters: ";
char data[numberOfBytes];
std::cin.get(data, numberOfBytes);
std::cout << "\nEntered: " << data << "\n";
return 0;
}
如果要阅读任意数量的字符,然后再检查大小,请使用std::string
。您还是应该做。
所以:
std::string s{};
std::cin >> s;
if (s.length() > ....) {
....
}