程序出错C++
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()中,在输入之前删除"string"单词:
错:
romanType::setNumeral(string s)
{
string input=s;
}
右:
romanType::setNumeral(string s)
{
input=s;
}
在错误的示例中,您将成员变量隐藏为具有相同名称的局部变量。
在这里:
void romanType::setNumeral(string s)
{
string input = s;
}
使用字段名称,而不是使此类中的字段名称黯然失色的局部变量"input"。
相关文章:
- 重载操作程序时出错>>用于类中的字符串 memebr
- 分段错误当我试图运行程序时出错
- 使用 Visual Studio 2019 构建 Hello World wxwidgets 应用程序时出错
- 在另一台 PC 上执行程序时加载 SDL2 共享库时出错
- 修改气泡排序的程序出错
- 包含多维数组的程序出错
- 程序出错C++
- 检查完美的程序出错了
- 带有私有构造函数的程序出错
- LunarLander程序出错:符号未解析
- C++程序出错
- 结构:初始化程序出错
- 编译简单的应用程序出错
- 在树莓派上编译c++ opencv应用程序出错
- 链接基于Qt的应用程序出错
- 简单数学程序出错
- 具有未定义行为但从未实际执行的表达式是否会使程序出错
- 目录列表程序出错,c++
- Qt LNK2019 基本 Qt5 应用程序出错
- 我的简单阶乘计算器c++程序出错了吗?