50 } inputSettings{std::cout, std::cin};
60 template <
class T = std::
string>
61 T input(
const std::string &prompt =
"",
68 is.os << prompt << std::flush;
73 is.is.ignore(std::numeric_limits<std::streamsize>::max(),
'\n');
74 is.os <<
"StreamError!\n";
77 is.is.ignore(std::numeric_limits<std::streamsize>::max(),
'\n');
88 long double inputNumber(
const std::string &prompt =
"Type a number: ",
100 std::string
inputLine(
const std::string &prompt =
"Type a line string: ",
104 is.os << prompt << std::flush;
105 if (is.is.peek() ==
'\n')
107 std::getline(is.is, tmp);
121 long double min = DBL_MIN,
122 long double max = DBL_MAX,
131 is.os <<
"less than the minimum value of " <<
min << std::endl;
136 is.os <<
"Greater than the maximum value of "
151 char inputChar(
const std::string &prompt =
"Type a character: ",
154 is.os << prompt << std::flush;
155 char tmp = is.is.get();
156 is.is.ignore(std::numeric_limits<std::streamsize>::max(),
'\n');
174 if (tmp ==
'Y' || tmp ==
'y')
176 else if (tmp ==
'N' || tmp ==
'n')
179 is.os <<
"Please type yes or no." << std::endl;
190 std::string
inputAll(
const std::string &prompt =
"",
194 return {std::istreambuf_iterator<char>(is.is),
195 std::istreambuf_iterator<char>()};
T min(const MultiArray< T, Dims... > &a)
求最小值。
Definition multiarray.h:1551
T max(const MultiArray< T, Dims... > &a)
求最大值。
Definition multiarray.h:1561
std::string inputAll(const std::string &prompt="", const InputSettings &is=inputSettings)
读取输入流中剩余的全部内容(直到 EOF)。
Definition input.h:190
T input(const std::string &prompt="", const InputSettings &is=inputSettings)
从标准输入读取一个值,支持类型模板。
Definition input.h:61
long double inputWithRange(const std::string &prompt="Type a number: ", long double min=DBL_MIN, long double max=DBL_MAX, const InputSettings &is=inputSettings)
读取一个在指定范围内的数字。
Definition input.h:120
bool inputYesOrNo(const std::string &prompt="Type yes or no: ", const InputSettings &is=inputSettings)
读取一个 y/n 确认,返回布尔值。
Definition input.h:167
std::string inputLine(const std::string &prompt="Type a line string: ", const InputSettings &is=inputSettings)
读取一整行字符串(包含空格)。
Definition input.h:100
long double inputNumber(const std::string &prompt="Type a number: ", const InputSettings &is=inputSettings)
读取一个 long double 类型的数字。
Definition input.h:88
char inputChar(const std::string &prompt="Type a character: ", const InputSettings &is=inputSettings)
读取一个字符(忽略前导空白,但不跳过换行符?实际使用 get())。
Definition input.h:151