终止具有特定字符的循环

Terminate a loop with specific characters

本文关键字:字符 循环 终止      更新时间:2023-10-16

我想编写一个程序来终止具有特定字符(例如"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 ... 
}

我不是在为你编写代码,只是提供一些片段来帮助你。