我想要它,以便当用户输入超过5个字符时,会发生一些事情,而不是仅仅跳过其余部分。
在此代码中,如果输入的字符数超过5个,则只会显示前5个字符。 我想在这里添加一个“if”语句,如果用户输入超过5个字符,它将显示错误或其他内容,而不只是显示前5个字符。
#include <iostream>
#include <iomanip>
int main()
{
using namespace std;
string nationname;
int maxchar = 5;
cout << "What is the name of your nation?\n";
cin >> setw(maxchar) >> nationname;
cout << "The name of your nation is " << nationname;
cin.ignore();
return 0;
}
谢谢!
答案 0 :(得分:3)
您可以先完整读取字符串然后验证它:
int main()
{
using namespace std;
const int maxchar = 5;
string nationname;
cout << "What is the name of your nation?" << endl;
cin >> nationname;
if (nationname.size() > maxchar)
{
err << "The input is too long." << endl;
return 1;
}
// ...
}
顺便提一下,您应该在提示时使用std::endl
,而不仅仅是\n
;您希望在开始等待用户输入之前确保将提示刷新到屏幕。 (编辑:正如Loki Astari在评论中指出的那样,这部分实际上并不是必需的。)
答案 1 :(得分:0)
**
#include <iostream>
#include <iomanip>
#include<string>
#include <conio.h>
int main() {
using namespace std;
const int maxchar = 6;
string nationname;
cout << "What is the name of your nation?" << endl;
getline(cin, nationname);
if (nationname.size() > maxchar)
{
cout << "The input is too Short." << endl;
} getch();
return 0;
}
**
您可以使用此代码。这是完美的,没有任何错误。此外,您可以将其转换为最小字符输入进行少量更改。