嘿,我试图验证一个字符串。基本上我想要它做的是防止用户输入字符串以外的任何内容。这是我的代码:
**getString**
string getString(string str)
{
string input;
do
{
cout << str.c_str() << endl;
cin >> input;
}
while(!isalpha(input));
return input;
}
错误
Error 2 error LNK2019: unresolved external symbol "public: bool __thiscall Validator::getString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?getString@Validator@@QAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: void __thiscall Player::information(void)" (?information@Player@@QAEXXZ) C:\Users\Conor\Documents\College\DKIT - Year 2 - Repeat\DKIT - Year 2 - Semester 1 - Repeat\Games Programming\MaroonedCA2\MaroonedCA2\Player.obj MaroonedCA2
Error 3 error LNK1120: 1 unresolved externals C:\Users\Conor\Documents\College\DKIT - Year 2 - Repeat\DKIT - Year 2 - Semester 1 - Repeat\Games Programming\MaroonedCA2\Debug\MaroonedCA2.exe MaroonedCA2
4 IntelliSense: no suitable conversion function from "std::string" to "int" exists c:\Users\Conor\Documents\College\DKIT - Year 2 - Repeat\DKIT - Year 2 - Semester 1 - Repeat\Games Programming\MaroonedCA2\MaroonedCA2\Validator.cpp 72 17 MaroonedCA2
主要的
cout << "What is your name ?\n";
name = validator.getString();<------This skips.
cout << "\nWhat is your age? ";
age = validator.getNum();
string character = "What is your sex M/F?";
sex = validator.getChar(character);
cout <<"Name:\n"<< name<<" Age:\n" << age<< " Sex:\n"<< sex <<"\n";
新的 getString 函数。
string Validator :: getString()
{
string input;
do
{
}
while (
std::find_if_not(
std::begin(input), //from beginning
std::end(input), //to end
isalpha //check for non-alpha characters
) != std::end(input) //continue if non-alpha character is found
);
return input;
}