|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<iostream>
void time(int, int);
int main()
{
int hour;
std::cout << ("请输入小时数:");
while (!(std::cin >> hour) | hour < 0 | hour >23) // 非法输入
{
std::cin.clear();
std::cin.ignore(100, '\n');
std::cout << ("请输入正确的小时格式:");
}
int minute;
std::cout << ("请输入分钟数:");
while (!(std::cin >> minute) | minute < 0 | minute >59) // 非法输入
{
std::cin.clear();
std::cin.ignore(100, '\n');
std::cout << ("请输入正确的分钟格式:");
}
time(hour, minute);
std::cin.get();
std::cin.get();
return 0;
}
void time(int h, int min)
{
std::cout << std::endl << ("时间:") << h << (":") << min << std::endl << std::endl;
}
格式如下:
请输入小时数:
请输入分钟数:
时间:
现在考虑到的非法输入有字母符号和超出取值范围的整数
但是如果输入例如 1.1.1 这样的,程序就会出错,请问如何对这种错误进行识别呢?
谢谢大家了,小弟初来乍到请多多指教!
结束输入小时后对流进行清空即可
- #include<iostream>
- void time(int, int);
- int main()
- {
- int hour;
- std::cout << ("请输入小时数:");
- while (!(std::cin >> hour) | hour < 0 | hour >23) // 非法输入
- {
- std::cin.clear();
- std::cin.ignore(100, '\n');
- std::cout << ("请输入正确的小时格式:");
- }
- std::cin.clear();
- std::cin.ignore(100, '\n');
- int minute;
- std::cout << ("请输入分钟数:");
- while (!(std::cin >> minute) | minute < 0 | minute >59) // 非法输入
- {
- std::cin.clear();
- std::cin.ignore(100, '\n');
- std::cout << ("请输入正确的分钟格式:");
- }
- time(hour, minute);
- std::cin.get();
- std::cin.get();
- return 0;
- }
- void time(int h, int min)
- {
- std::cout << std::endl << ("时间:") << h << (":") << min << std::endl << std::endl;
- }
复制代码
|
|