試圖讓程序提示用戶輸入將被轉換成電話號碼(這是工作正常)的字母,然後提示用戶,如果他們想重複相同的步驟(這是我遇到錯誤的地方)。該程序轉換電話號碼,然後立即生成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'並被拒絕。 –
是的,我也改變了。謝謝你指出。 –