问题:我的老师一直使用的字符串提示是什么?
我的老师用工具原型制作了这个头文件:
#include<string>
//using namespace std;
#ifndef TOOLS_LOCK
#define TOOLS_LOCK
namespace tools_namespace
{
extern const int SCREEN_WIDTH;
std::string swab( char value, int howMany );
void pause( std::string prompt );
void flush(void);
int getInt ( std::string prompt );
float getFloat ( std::string prompt );
char getChar ( std::string prompt );
std::string getString ( std::string prompt );
std::string getLine ( std::string prompt );
bool getBool ( std::string prompt );
int getBoundedInt ( std::string prompt,
int lowerBound,
int upperBound );
int getPositiveInt ( std::string prompt );
int getNonNegativeInt ( std::string prompt );
void handleInputError ( std::string message );
int width ( int number );
int magnitude ( int value );
int minimum( int a, int b );
int maximum( int a, int b );
bool isOdd( int value );
}
#endif
现在这里是tools.cpp,其中包含带有数学的实际工具。我将要稍后进行测试,我们必须使用他在第123行找到的getNonNegativeInt函数。这个让我失望的是这段代码中的“字符串提示符”。
#include<string>
#include<iostream>
#include"Tools.h"
#include"CompileSwitches.h"
using namespace std;
namespace tools_namespace
{
const int SCREEN_WIDTH = 80;
string swab( char swabValue, int howMany )
{
string swabString;
for ( int charsNeeded = howMany
; charsNeeded > 0
; --charsNeeded )
swabString = swabString + swabValue;
return swabString;
}
void pause( string prompt )
{
cout << prompt;
cin.ignore(999,'\n');
}
// clear input garbage
void flush( void )
{
cin.ignore(999,'\n');
}
int getInt( string prompt )
{
int userInput;
while (true)
{
cout << prompt;
cin >> userInput;
flush();
if ( !cin.fail() ) break;
handleInputError("Non-Numeric input.");
}
return userInput;
}
float getFloat( string prompt )
{
float userInput;
while (true)
{
cout << prompt;
cin >> userInput;
flush();
if ( !cin.fail() ) break;
handleInputError("Non-Numeric input.");
}
return userInput;
}
int magnitude ( int value )
{
return (value>=0) ? value : -value;
}
int width( int number )
{
int digitCount = 0;
if ( number < 0 )
{
++digitCount; // for the sign
number = -number;
}
for ( ; number >= 10 ; number /= 10 )
++digitCount;
++digitCount; // for the last digit
return digitCount;
}
int minimum( int a, int b )
{
return ( a < b ) ? a : b;
//if ( a < b )
// return a;
//else
// return b;
}
int maximum( int a, int b )
{
return ( a > b ) ? a : b;
//if ( a < b )
// return a;
//else
// return b;
}
int getBoundedInt( string prompt,
int lowerBound, int higherBound )
{
int userInput;
while (true)
{
userInput = getInt( prompt );
if ( userInput >= lowerBound
&& userInput <= higherBound )
break;
cout << "Value must be in the range "
<< lowerBound
<< "..."
<< higherBound
<< ". Try again."
<< endl;
}
return userInput;
}
int getPositiveInt( string prompt )
{
return getBoundedInt( prompt, 1, INT_MAX );
}
int getNonNegativeInt( string prompt )
{
return getBoundedInt( prompt, 0, INT_MAX );
}
char getChar( string prompt )
{
char userInput;
while (true)
{
cout << prompt;
cin >> userInput;
flush();
if ( !cin.fail() ) break;
handleInputError("Input failed.");
}
return userInput;
}
string getString( string prompt )
{
string userInput;
while (true)
{
cout << prompt;
cin >> userInput;
flush();
if ( !cin.fail() ) break;
handleInputError("Input failed.");
}
return userInput;
}
void handleInputError( string message )
{
cin.clear();
flush();
cout << message << " Try again." << endl;
}
string getLine( string prompt )
{
string userInput;
while (true)
{
cout << prompt;
getline(cin,userInput);
if ( !cin.fail() ) break;
cin.clear();
flush();
cout << "Input failed - Try again." << endl;
}
return userInput;
}
bool getBool( string prompt )
{
while (true)
{
char userInput = getChar(prompt);
if ( userInput == 'y' || userInput == 'Y' )
return true;
if ( userInput == 'n' || userInput == 'N' )
return false;
cout << "Please enter y or n." << endl;
}
}
bool isOdd( int aNumber )
{
#ifndef GROSS
return magnitude(aNumber)%2 == 1;
#else
if ( aNumber < 0 )
aNumber = -aNumber;
int remainder = aNumber%2;
if ( remainder == 1 || remainder == -1)
return true;
else if ( remainder != 1 )
return false;
#endif
}
}
答案 0 :(得分:0)
如果问题是什么是字符串提示,它只是一个字符串变量,其中字符串变量的名称是&#34;提示&#34;在调用函数时传递给函数。例如:
std::string thisIsAString = "Hello World";
void PrintPromptText(std::string prompt){
std::cout << prompt;
}
int main(void){
PrintPromptText(thisIsAString);
return 0;
}
此代码的输出将是&#34; Hello World&#34;
您的老师只是使用提示作为字符串变量的变量名。
答案 1 :(得分:0)
提示(我用名字猜测)是在输入数据之前打印的文本。
例如:
int my_variable = getInt("Enter an integer: ");
答案 2 :(得分:0)
参数string prompt
由函数使用,它要求程序用户在行cout << prompt
中提供输入。
函数getNonNegativeInt(string prompt)
使用如上所述的字符串,然后只接受用户输入,如果它在0-INT_MAX范围内(即正数),则通过使用正确的参数调用getBoundedInt(string prompt, int lowerBound, int upperBound)
。 INT_MAX是一个宏定义的常量,它的名字就是这样做的。