试图让程序提示用户输入将被转换成电话号码(这是工作正常)的字母,然后提示用户,如果他们想重复相同的步骤(这是我遇到错误的地方)。该程序转换电话号码,然后立即生成cout语句,而不让用户输入cin >>重复字符。有问题得到一个循环与功能相结合
“你想输入一个电话号码:Y/N”
“请输入一个有效的输入:Y/N”
我有一个cin >>两者之间,你可以在代码中看到。任何关于如何使这项工作的建议?先谢谢你。
#include <iostream>
#include <string>
using namespace std;
void telephoneConverter();
int counter;
char phoneNumber;
int main()
{
char repeat;
telephoneConverter();
cout << endl
<< "Would you like to enter a phone
number: Y/N ";
cin >> repeat;
if (repeat == 'Y' || repeat == 'y') {
telephoneConverter();
}
if (repeat == 'N' || repeat == 'n') {
cout << "Have a good day.";
}
else
cout << "Please enter a valid input: Y/N.";
return 0;
}
void telephoneConverter()
{
cout << "\nEnter a phone number in letters
only."
<< endl;
for (counter = 0; counter < 7; counter++) {
cin >> phoneNumber;
if (counter == 3)
cout << "-";
if ((phoneNumber >= 'A' && phoneNumber
<= 'Z')
|| (phoneNumber >= 'a' && phoneNumber
<= 'z'))
switch (phoneNumber) {
case 'A':
case 'a':
case 'B':
case 'b':
case 'C':
case 'c':
cout << 2;
break;
case 'D':
case 'd':
case 'E':
case 'e':
case 'F':
case 'f':
cout << 3;
break;
case 'G':
case 'g':
case 'H':
case 'h':
case 'I':
case 'i':
cout << 4;
break;
case 'J':
case 'j':
case 'K':
case 'k':
case 'L':
case 'l':
cout << 5;
break;
case 'M':
case 'm':
case 'N':
case 'n':
case 'O':
case 'o':
cout << 6;
break;
case 'P':
case 'p':
case 'Q':
case 'q':
case 'R':
case 'r':
case 'S':
case 's':
cout << 7;
break;
case 'T':
case 't':
case 'U':
case 'u':
case 'V':
case 'v':
cout << 8;
break;
case 'W':
case 'w':
case 'X':
case 'x':
case 'Y':
case 'y':
case 'Z':
case 'z':
cout << 9;
break;
}
}
};
该交换机虽然... – Drop
你只输入一次'重复',如果是'Y',你可以输入另一个数字,但不要再次请求重复。所以当你对'N'进行测试时,值仍然是'Y'并被拒绝。 –
是的,我也改变了。谢谢你指出。 –