如何解决我正在学习编程,我想知道是否有任何方法可以让这段代码只接受整数
我想知道是否有办法让这个代码只接受整数,如果你输入一个带有小数的数字,这是错误的代码:
if (anio % 4 == 0) {
std::cout << "El anio "<<anio<<" es un anio biciesto" << '\n';
return 0;
}
else if (anio % 100 == 0) {
std::cout << "El anio "<<anio<<" no es un anio biciesto" << '\n';
return 0;
}
else if (anio % 100 == 0 && anio % 400 == 0) {
std::cout << "El anio "<<anio<<" es un anio biciesto" << '\n';
return 0;
}
else{
std::cout << "El anio "<<anio<<" no es un anio biciesto" << '\n';
return 0;
}
}
std::cout << "El anio que digito no es valido para el programa,debe ser un digito menor o igual a 500" << '\n';
std::cout << "Quiere digitar otro anio? Digite 1 para volver a intentar o digite cualquier numero para salir del programa" << '\n';
std::cin >> opcion;
system("cls");
} while(opcion==1);
getchar();
return 0;
}
解决方法
您可以使 anio
成为 float
并使用 std::modf
来检测它是否为整数。
#include <cmath>
#include <iostream>
#include <stdexcept>
int main(int argc,char *argv[]) {
float anio;
std::cin >> anio;
if (std::modf(anio,&anio) != 0f)
throw std::invalid_argument("El año debe ser un número entero");
// do stuff
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。