我正在做一个作业,要求用户键入状态的缩写,当它获得正确的输入时,它将显示状态的全名。我有下面的代码,但是由于某种原因,即使我输入了正确的缩写,例如TN,我仍然会收到无效的输入!这肯定是我在while循环条件下犯的一个简单错误,或者我错过了一些东西,但我似乎无法弄清楚。.希望能得到帮助!
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main() {
string state;
string KY, OH, IN, TN, WV;
cout << "Question 1:" << endl;
cout << "Enter state abbreviation (KY, OH, IN, TN, WV): ";
cin >> state;
while (state != KY && state != OH && state != IN && state != TN && state != WV) {
cout << "Invalid Entry!";
cout << "\nEnter state abbreviation (KY, OH, IN, TN, WV): ";
cin >> state;
}
if (state == KY)
cout << "Kentucky";
if (state == OH)
cout << "Ohio";
if (state == IN)
cout << "Indiana";
if (state == TN)
cout << "Tennessee";
if (state == WV)
cout << "West Virgnia";
system("Pause");
return 0;
}
答案 0 :(得分:4)
如果您未指定std::string
的内容,它将被初始化为空字符串,因此您的OH
,KY
(等等)都是空字符串。大概您想要这样的东西:
string KY = "KY", OH = "OH", IN = "IN", TN = "TN", WV = "WV";
那至少应该是朝着正确的方向前进。
答案 1 :(得分:0)
您已定义了字符串变量KY,OH等。它们与字符串“ KY”,“ OH”不同。您正在与未初始化的字符串变量进行比较。