我正在尝试制作一个程序,其中用户输入一个数字和一个表示他们使用的测量单位的字母(例如英寸=i,英尺=f等),然后输入的字母用于一系列 if 语句查看要使用哪个函数将数字转换为米数。我为测量单位添加了输入验证(用作字符串变量)。我的问题是当我输入要使用的字母时,即使输入正确,程序也会认为我输入的内容无效。我删除了输入验证,还注意到字符串甚至没有通过任何 if 语句。代码类似于#include 包含的代码:
#include <iostream>
#include <string>
using namespace std;
float inTOmeters(float);
float ftTOmeters(float);
float cmTOmeters(float);
float yTOmeters(float);
int main{
float measurement, measurement;
string unit;
cout<<"Enter the number you want to be measured"<<endl;
cin>>measure;
cout<<"Now enter the unit of measurement you want to use"<<endl;
cout<<"i=inches, f=feet, c=centimeters, y=yards, m=meters"<<endl;
cin<<unit;
while(unit !="i"||unit !="m"||unit !="c"||unit !="y"||unit !="f"){
cout<<"Invalid input pick from I, m, c, y, or f"<<endl;
cin>>unit;
}
if(unit=="i"){
measurementm=inTOmeters(measurement);
}
if(unit=="c"){
measurementm=cmTOmeters(measurement);
}
if(unit=="f"){
measurementm=ftTOmeters(measurement);
}
if(unit=="y"){
measurementm=yTOmeters(measurement);
}
else{
measurementm=measurement;
}
cout<<"your measurement will be"<<measurementm<<"in meters."<<endl;
}
我没有包含这些功能,因为我知道它们可以工作。我的问题是如何使我的循环和 if 语句在给出正确输入时起作用?另外,如何使代码接受正确输入的大写字母?