如何使用用户的输入停止程序的某个部分?
How do I stop a certain part of a program using the user's input?
我正在制作一个级成绩的程序。我想知道如何根据用户的输入停止程序的某些部分。以下是我正在研究的程序。如果用户输入"完成",该如何停止程序?另外,我不一定要使用"完成"来退出程序。最初我要使用-1,但是我遇到了一个问题,必须在其中制定一个强大的程序,其中values<0和> 100不接受。
int grade;
a=b=c=d=f=0;
do
{
cout << "Enter a grade or enter done to stop. ";
if (grade >= 90 && grade <= 100)
{a++;}
if (grade >= 80 && grade < 90)
{b++;}
if (grade >= 70 && grade < 80)
{c++;}
if (grade >= 60 && grade < 70)
{d++;}
if (grade >= 0 && grade < 60)
{f++;}
} while (grade != 'done');
只是返回0?另外,除非您覆盖= operator或其他东西,否则您不能进行等级='完成。
要求用户输入整数值的最简单方法,这是您预期的以外的值范围例如-1)。"完成后 - 输入-1"。
另外,如果(grade = 'done')
- 分配在这里,以比较使用 operator == ,它是
//if(级=='完成')
或者您可以使用以下方法:
do
{
cout << "Enter a grade or enter done to stop. ";
// first try to get string from user (which he/she enters when done)
string str;
cin >> str;
if (str == "done") // if done was entered - exit from the loop
break;
// else clear fail bit in stream object and read int value
cin.clear();
cin >> grade;
if (grade >= 90 && grade <= 100)
{//a++;}
if (grade >= 80 && grade < 90)
{//b++;}
if (grade >= 70 && grade < 80)
{//c++;}
if (grade >= 60 && grade < 70)
{//d++;}
if (grade >= 0 && grade < 60)
{//f++;}
} while (grade != 'done');
首先,"等级"是类型int,因此,如果您想要的"等级"是int的,则不能将int转换为 *char,而不是-1。或者,如果您想用"完成"退出,则可以使用" char" [5],并且可以使用atoi()将字符串转换为整数进行检查,然后使用strcmp()到compere"等级",然后用"完成"。<<<<<<<<<<<<<<<<<<
您有写代码以输入字符串。然后,您可以测试字符串是否等于"完成"。如果不是,则可以将字符串转换为整数,然后检查您的等级边界。
如果您真的想使用数字和字符串,我建议使用弦乐。这是一个示例:
string Text = "456";//string containing the number
int Result;//number which will contain the result
stringstream convert(Text); // stringstream used for the conversion initialized with the contents of Text
if ( !(convert >> Result) )//give the value to Result using the characters in the string
Result = 0;//if that fails set Result to 0
//Result now equal to 456
源链接
首先,单引号表示字符文字,双引号终止字符串(2.14左右)。
if(grade = 'done')
始终是正确的,编译器应该向您发出警告,说您不做自己认为正在做的事情,正在分配它,然后检查它是否为真,这将始终是。p>您正在尝试将整数分配给字符串。
这似乎是家庭作业,所以我不会写它,但是您需要从stdin中拿起一个字符串,然后对其进行解析,例如,是整数或字符串,是对该数据的行为。要终止您可以致电exit
,从循环中断或从功能返回。
您可以将输入作为字符串,如果第一个字符不是数字,则可以打破循环,否则将字符串遮盖到整数上,否则:
#include<iostream>
#include<string>
#include<cctype>
#include<cstdlib>
using namespace std;
int main() {
int grade;
string input;
int a, b, c, d, f;
a=b=c=d=f=0;
do
{
cout << "Enter a grade or enter done to stop: ";
cin >> input;
cout << endl;
if(!isdigit(input[0])) {
break;
} else {
grade = atoi(input.c_str());
}
if (grade >= 90 && grade <= 100)
{a++;}
if (grade >= 80 && grade < 90)
{b++;}
if (grade >= 70 && grade < 80)
{c++;}
if (grade >= 60 && grade < 70)
{d++;}
if (grade >= 0 && grade < 60)
{f++;}
} while (1==1);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
cout << "d = " << d << endl;
cout << "f = " << f << endl;
getchar();
return 0;
}
- boost::asio如何生成多个协同程序,然后加入它们
- 无法使用管道将数据发送到我通过exec(C++)启动的第二个应用程序
- 如何在 2 个应用程序之间实现拖放?
- 在代码块中运行我的第一个图形程序
- ACE在同一PC上具有多个应用程序实例 - 仅首先获取消息
- 如何避免多个删除程序 lambda
- C++ 快板第一个显示程序 - 平移旋转刻度
- 停止直接执行主应用程序并从第二个应用程序执行它
- 如何使用 Visual Studio 2005 获取两个不同 c++ 程序之间的返回值
- 用 C::B 编译我的第一个应用程序
- 多个应用程序访问的单个进程
- 管理员权限2个应用程序
- 在 Linux 上的两个应用程序之间共享数据
- 在 C++ 中在 2 个应用程序之间发送和接收数据
- 多个应用程序之间的数据库状态
- Reg 在 U-Boot 上执行 C++ 个应用程序(无操作系统)
- 使用C++测量网络上 2 个应用程序之间的数据传输速率(带宽),如何获得公正准确的结果
- 如何使两个应用程序交互
- 2个c++应用程序之间的通信
- Apache Thrift和多个处理程序/处理器