使'Q'关闭程序
Make 'Q' close out program
本文关键字:关闭程序 更新时间:2023-10-16
当输入Q或Q时需要程序关闭
但目前还没有,它只是关闭并显示电话号码,然后关闭。
如果你能帮助我请发帖谢谢!
我目前有这个代码到目前为止,它的工作,但while循环没有,因为它不会停止,如果-5返回。
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int readDial ( char &d1, char &d2, char &d3, char &d4, char &d5, char &d6, char &d7, char &d8);
char toDigit (char &d);
void acknowledgeCall (char d1, char d2, char d3, char d4, char d5, char d6, char d7, char d8);
int main ()
{
char d1, d2, d3, d4 , d5, d6, d7, d8;
int returnV = false;
while (returnV != -5)
{
returnV = readDial (d1,d2,d3,d4,d5,d6,d7,d8);
switch (returnV)
{
case -1: cout << "Error - An invalid Character was entered.n";
case -2: cout << "Error - Phone Number cannot begin with 0.n";
case -3: cout << "Error - Phone Number cannot begin with 555.n";
case -4: cout << "Error - Hyphen is not in the correct spot.n";
default: acknowledgeCall (d1, d2, d3,d4, d5,d6,d7,d8);
}
}
system("pause");
return 0;
}
int readDial ( char &d1, char &d2, char &d3, char &d4, char &d5, char &d6, char &d7, char &d8)
{
int returnV;
cout << " Enter The Phone Number (Q to Quit): ";
cin >> d1;
if( d1 == 'Q' || d1 == 'q')
return -5;
cin >> d2 >> d3 >> d4 >> d5 >> d6 >> d7 >> d8;
returnV = toDigit(d1);
if (returnV == -1)
return returnV;
returnV = toDigit(d2);
if (returnV == -1)
return returnV;
returnV = toDigit(d3);
if(d4 != '-')
return -4;
returnV = toDigit(d5);
if (returnV == -1)
return returnV;
returnV = toDigit(d6);
if (returnV == -1)
return returnV;
returnV = toDigit(d7);
if (returnV == -1)
return returnV;
returnV = toDigit(d8);
if (returnV == -1)
return returnV;
if (d1 == '0')
return -2;
if (d1 == '5' && d2 == '5' && d3 == '5')
return -3;
return 0;
}
char toDigit (char &d)
{
d = toupper (d);
switch (d)
{
case '0': case '1' : case '2' : case '3': case '4' : case '5' : case '6' : case '7' : case '8' : case '9':
break ;
case 'A' : case 'B' : case 'C':
d = '2';
break;
case 'D' : case 'E' : case 'F' :
d = '3';
break ;
case 'G' : case 'H' : case 'I' :
d = '4';
break ;
case 'J' : case 'K' : case 'L' :
d = '5';
break ;
case 'M' : case 'N' : case 'O' :
d = '6';
break ;
case 'P' : case 'Q' : case 'R' : case 'S' :
d = '7' ;
break ;
case 'T' : case 'U' : case 'V' :
d = '8' ;
break ;
case 'W' : case 'X' : case 'Y' : case 'Z' :
d = '9' ;
break;
default: return -1;
}
}
void acknowledgeCall (char d1, char d2, char d3, char d4, char d5, char d6, char d7, char d8)
{
cout << " Phone Number Dialed: " << d1 << d2 << d3 << d4 << d5 << d6 << d7 <<d8 << " nn ";
}
您的main()中有一个主要的逻辑问题。
检查您的switch:case
逻辑,并为Q/Q输入添加必要的处理
您在switch case中使用了default
case,这意味着该case适用于除上述值之外的所有其他值。因此,如果您不指定returnV=5
,则执行默认情况。因此,在默认大小写之前添加以下语句:
case -5: exit(1)
如果returnV为-5,将导致程序退出。在switch的case之间使用break语句,会导致在执行单个case后控件离开switch case。如果不使用,则执行原用例之后所需的所有用例。所以在每个大小写后面加上break;
相关文章:
- 如何在 qt 中从另一个线程运行 qt并发时关闭程序
- 如何在程序崩溃时关闭程序,没有任何警告屏幕等.C++窗口
- QT-从QDialog(MainWindow满载之前)关闭程序
- Gtkmm 3/C++,使用按钮而不是窗口关闭程序"X"
- c ++ Win32 API GetMessage 关闭程序在线程内
- nofify_all()关闭程序时会崩溃
- 每项分辨率的自动关闭程序
- Windows上的C 在启动后立即关闭程序
- 在QT中关闭程序之前,请显示对话框
- 用x关闭程序时内存泄漏
- 在不关闭程序的情况下写入文件后,从文件中获取保存的数据
- Qt:关闭模式对话框关闭程序
- 如何在用户输入字符并按回车键后关闭程序
- 视觉C++ - 在我关闭程序之前,ofstream 不会输出到文件
- C 使用 Y/N 选项循环开关。选择 N 不会关闭程序
- C++关闭程序的方法
- 防止Ctrl-C关闭程序
- 使'Q'关闭程序
- 在我关闭程序之前,对象尚未被处理
- 如何在C++中正确关闭程序