#pragma once
#include <iostream>
#include <iomanip>
#include <string>
void day1();
void day2();
void day3();
void day4();
void day5();
template <class T>
void cin_int(const std::string& str, T& number);
template <class T>
void cin_int(const std::string& str, T& number)
{
top:
std::cout << str;
while (!(std::cin >> number))
{
std::cin.clear();
while (std::cin.get() != '\n')
continue;
std::cout << "\b(警告:输入非法字符,请重新输入一个数字!)" << std::endl;
std::cout << str;
}
if (std::cin.get() != '\n')
{
std::cin.clear();
while (std::cin.get() != '\n')
continue;
std::cout << "\b(警告:输入非法字符,请重新输入一个数字!)" << std::endl;
goto top;
}
}
2.如果必须要将定义和声明分为两个文件.cpp文件和.h文件
则在.cpp定义的尾部添加实例即可
template void cin_int<int>(const std::string& str, int& number);
template void cin_int<float>(const std::string& str, float& number);
template void cin_int<double>(const std::string& str, double& number);