-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprompt.cpp
More file actions
130 lines (114 loc) · 2.91 KB
/
prompt.cpp
File metadata and controls
130 lines (114 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <cctype>
#include <iostream>
#include "prompt.h"
using namespace std;
long int PromptRange(const string & prompt,long int low, long int high)
// precondition: low <= high
// postcondition: returns a value between low and high (inclusive)
{
long int value;
string response;
do
{
cout << prompt << " between ";
cout << low << " and " << high << ": ";
cin >> response;
value = atol(response.c_str());
} while (value < low || high < value);
return value;
}
static void eatline()
{
string dummy;
getline(cin,dummy);
}
long int PromptlnRange(const string & prompt,long int low, long int high)
// precondition: low <= high
// postcondition: returns a value between low and high (inclusive)
{
long int retval = PromptRange(prompt,low,high);
eatline();
return retval;
}
int PromptRange(const string & prompt,int low, int high)
// precondition: low <= high
// postcondition: returns a value between low and high (inclusive)
{
int value;
string response;
do
{
cout << prompt << " between ";
cout << low << " and " << high << ": ";
cin >> response;
value = atoi(response.c_str());
} while (value < low || high < value);
return value;
}
int PromptlnRange(const string & prompt,int low, int high)
// precondition: low <= high
// postcondition: returns a value between low and high (inclusive)
{
int retval = PromptRange(prompt,low,high);
eatline();
return retval;
}
double PromptRange(const string & prompt,double low, double high)
// precondition: low <= high
// postcondition: returns a value between low and high (inclusive)
{
double value;
string response;
do
{
cout << prompt << " between ";
cout << low << " and " << high << ": ";
cin >> response;
value = atof(response.c_str());
} while (value < low || high < value);
return value;
}
double PromptlnRange(const string & prompt,double low, double high)
// precondition: low <= high
// postcondition: returns a value between low and high (inclusive)
{
double retval = PromptRange(prompt,low,high);
eatline();
return retval;
}
string PromptString(const string & prompt)
// postcondition: returns string entered by user
{
string str;
cout << prompt;
cin >> str;
return str;
}
string PromptlnString(const string & prompt)
// postcondition: returns string entered by user
{
string str;
cout << prompt;
getline(cin,str);
return str;
}
bool PromptYesNo(const string & prompt)
// postcondition: returns true iff user enters yes
{
string str;
char ch;
do
{
cout << prompt << " ";
cin >> str;
ch = tolower(str[0]);
} while (ch != 'y' && ch != 'n');
return ch == 'y';
}
bool PromptlnYesNo(const string & prompt)
// postcondition: returns true iff user enters yes
{
bool retval = PromptYesNo(prompt);
eatline();
return retval;
}