终止具有特定字符的循环
Terminate a loop with specific characters
我想编写一个程序来终止具有特定字符(例如"Q"或"//"(的循环,但似乎无法弄清楚。 以下是具体情况
"一个程序,将计算一组小数的平均值 用户提供的数字。程序将要求用户输入 一次一个数字,当用户输入q时,它会停止并吐出总和">
但这需要用户输入整数,如果我输入"Q"或"//",程序会中断并吐出垃圾。我该怎么做?
我遇到的问题是如何在不要求两个不同输入的情况下做到这一点
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
//variables
double avg, num;
char q;
int main()
{
double sum = 0;
int count1 = 0;
while (q != 'q') {
cout << "Enter a number" << endl;
cin >> num;
cin >> q;
sum += num;
count1 += 1;
}
avg = sum / count1;
cout << "Sum: " << sum << endl;
cout << "Count: " << count1 << endl;
cout << "Average: " << avg << endl;
return 0;
}
假设你的赋值真的是你所描述的,那么你将需要读取一个字符串,然后转换为双精度。
这样的东西会起作用:
std::string s;
std::cin >> s;
if (s == "Q" || s == "//") { ... do stuff ... }
else
{
std::stringstream ss(s);
double d;
if (!(ss >> d))
{
std::cout << s << " doesn't appear to be a number..." << std::endl;
}
... do whatever with d ...
}
我不是在为你编写代码,只是提供一些片段来帮助你。
相关文章: