[英]Error with C++ Program
我目前正在參加C ++課程,所以請耐心等待。 我並不是要您解決我的作業,而只是幫助我弄清楚我所忽略的是什么,我正在將用戶輸入的羅馬數字轉換為十進制數字,然后顯示該數字。 我尚未完成轉換功能。 現在,我只是將數字轉換為數字並加起來(尚未考慮訂單上的內容)。 每當我運行程序時,我總是得到0,而不是正確的數字。 這是我的頭文件代碼:
class romanType
{
public:
void setNumeral(string);
string getNumeral();
double convertToNumber();
double printNumber();
private:
string input;
double num;
};
void romanType::setNumeral(string s)
{
string input = s;
}
string romanType::getNumeral()
{
return input;
}
double romanType::convertToNumber()
{
num = 0;
for(int i = 0; i < input.length(); i++)
{
switch (input.at(i))
{
case 'M':
num += 1000;
break;
case 'D':
num += 500;
break;
case 'C':
num += 100;
break;
case 'L':
num += 50;
break;
case 'X':
num += 10;
break;
case 'V':
num += 5;
break;
case 'I':
num += 1;
break;
}
}
return num;
}
double romanType::printNumber()
{
return num;
}
這是我的cpp文件代碼:
#include "stdafx.h"
#include "romanType.h"
#include <string>
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
romanType roman;
string input;
string output;
double number = 0;
cout << "Enter a Roman numeral." << endl;
cin >> input;
roman.setNumeral(input);
number = roman.convertToNumber();
cout << number << endl;
system("pause");
return 0;
}
在您的romanType :: setNumeral()中,在輸入之前刪除“字符串”一詞:
錯誤的:
romanType::setNumeral(string s)
{
string input=s;
}
對 :
romanType::setNumeral(string s)
{
input=s;
}
在錯誤的示例中,您使用相同名稱的局部變量隱藏了成員變量。
在這里:
void romanType::setNumeral(string s)
{
string input = s;
}
使用字段名稱,而不是使此類中的字段名稱黯然失色的局部變量“ input”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.