Функция как левый операнд - что мне делать? - PullRequest
0 голосов
/ 21 февраля 2019

Сколько бы я ни искал ответы, я не совсем понял ни одного из них, поэтому я решил обратиться за прямой помощью.

По сути, эта программа должна читать каждую цифру числа изатем запишите это нормально.на данный момент это «скелетный» код, поскольку я пытаюсь получить основную идею о том, как его программировать дальше, но я уже сталкиваюсь с ошибками.

Я получаю сообщение об ошибке в любой строке switch Я использую функцию, но я не знаю, как ее решить.Я получаю ошибку ошибка C2659: '=': функция в качестве левого операнда

#include <iostream>
#include <string>

using namespace std;

int number, digit;
int i;
string word[4];

void lowering();
void units();
void tens();

int main()
{
i = 4;
    word[i];

cout << "Enter a number: ";
cin >> number;
cout << endl;

lowering();
units();
i--;
lowering();
tens();

for(int x = 4; x >=0; x--)
    cout << word[x];

system("pause");
return 0;
}

void lowering()
{
    digit = number % 10;
    number = number / 10;
}

void units()
{
    switch (digit)
    {
    case 1:
        word[i].append = " one"; break;
    case 2:
        word[i].append = " two"; break;
    case 3:
        word[i].append = " three"; break;
    case 4:
        word[i].append = " four"; break;
    case 5:
        word[i].append = " five"; break;
    case 6:
        word[i].append = " six"; break;
    case 7:
        word[i].append = " seven"; break;
    case 8:
        word[i].append = " eight"; break;
    case 9:
        word[i].append = " nine"; break;
    default:
        word[i].append = "";
    }

    word[i].append = " ";
}

void tens()
{
    switch (digit)
    {
    case 1:
        word[i].append = " ten"; break;
    case 2:
        word[i].append = " twenty "; break;
    case 3:
        word[i].append = " thirty "; break;
    case 4:
        word[i].append = " fourty"; break;
    case 5:
        word[i].append = " fifty"; break;
    case 6:
        word[i].append = " sixty"; break;
    case 7:
        word[i].append = " seventy"; break;
    case 8:
        word[i].append = " eighty"; break;
    case 9:
        word[i].append = " ninety"; break;
    default:
        word[i].append = "";
    }

    word[i].append = " ";
}

1 Ответ

0 голосов
/ 21 февраля 2019

В ваших случаях переключения вы должны использовать это:

void units()
{
    switch (digit)
    {
    case 1:
        word[i].append(" one"); break;
    case 2:
        word[i].append(" two"); break;
    case 3:
        word[i].append(" three"); break;
    case 4:
        word[i].append(" four"); break;
    case 5:
        word[i].append(" five"); break;
    case 6:
        word[i].append(" six"); break;
    case 7:
        word[i].append(" seven"); break;
    case 8:
        word[i].append(" eight"); break;
    case 9:
        word[i].append(" nine"); break;
    default:
        word[i].append("");
    }

    word[i].append(" ");
}

Кроме того, для лучшего качества кода, вы должны поместить break; в новую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...