我的C ++函数似乎没有被称为

时间:2019-02-11 02:22:45

标签: c++

当程序到达函数调用时,程序似乎只是忽略它并继续前进。结果是一个无限循环,不允许输入商品或价格。

我对C ++还是很陌生,所以我仍在学习其语法的基础知识。如果有人能发现我做错了什么或予以解释,我将不胜感激。

#include <iostream>
#include <string>

using namespace std;

void itemPriceDisplay(string item1, string item2, string item3, string item4, string item5, int item1Price, int item2Price, int item3Price, int item4Price, int item5Price);
string addItems();
int addPrice(string item1, string item2, string item3, string item4, string item5);

int main()
{
    //////////////
    // Variables//
    //// Below////

    string moreItems = "Y";

    //////////////
    // Variables//
    ////Above////

    std::cout << "This program will display a list of inputed items their prices, and then calculate the total and tax.\n\n\n";

    while( (moreItems == "Y") || (moreItems == "y") )
    {
         string addItems();
         int addPrice();

        cout << "Would you like to list another item? (Y/N)";
        cin >> moreItems;

        void itemPriceDisplay();
    }
    return 0;
}

string addItems()
{
    string item1;
    string item2;
    string item3;
    string item4;
    string item5;

    cout << "Enter the name of the first item: ";
    cin >> item1;

    cout << "Enter the name of the second item: ";
    cin >> item2;

    cout << "Enter the name of the third item: ";
    cin >> item3;

    cout << "Enter the name of the fourth item: ";
    cin >> item4;

    cout << "Enter the name of the fith item: ";
    cin >> item5;

    return 0;
}


 int addPrice(string item1, string item2, string item3, string item4, string item5)
{
     int item1Price;
     int item2Price;
     int item3Price;
     int item4Price;
     int item5Price;

     cout << "Enter the price of the " << item1 << ":  ";
     cin >> item1Price;

     cout << "Enter the price of the " << item2 << ":  ";
     cin >> item2Price;

     cout << "Enter the price of the " << item3 << ":  ";
     cin >> item3Price;

     cout << "Enter the price of the " << item4 << ":  ";
     cin >> item4Price;

     cout << "Enter the price of the " << item5 << ":  ";
     cin >> item5Price;

     return 0;
}

 void itemPriceDisplay(string item1, string item2, string item3, string item4, string item5, int item1Price, int item2Price, int item3Price, int item4Price, int item5Price)
 {

     // List items and their price.

     cout << "\n Here is a list of your entered items and their prices: \n\n"
         << item1 << "        $" << item1Price << "\n"
         << item2 << "        $" << item2Price << "\n"
         << item3 << "        $" << item3Price << "\n"
         << item4 << "        $" << item4Price << "\n"
         << item5 << "        $" << item5Price << "\n";

     return;
 }

我正在尝试建立一个涉及调用两个函数的循环,然后询问用户是否希望再次运行它。如果没有,则程序应运行一个最终功能以输出结果。

2 个答案:

答案 0 :(得分:1)

您遇到一些问题:

1>在while循环中,您仅声明了一些函数,而不执行它们。

while( (moreItems == "Y") || (moreItems == "y") )
{
     string addItems();   // Only Declared the function addItem(), don't execute it
     int addPrice();      // Only declared the function addPrice(), don't execute it

    cout << "Would you like to list another item? (Y/N)";
    cin >> moreItems;

    void itemPriceDisplay(); // Only declared the function itemPriceDisplay, don't execute it
}

要执行它们,必须从它们获取返回值。 例如:

要执行执行程序addItem(),itemPriceDisplay(),您需要执行以下操作:

string result = addItem();
int price = addPrice();
itemPriceDisplay();

2>函数addItem()返回字符串,但您始终只返回0。

答案 1 :(得分:0)

这些行:

     string addItems();
     int addPrice();
     void itemPriceDisplay();

请勿拨打任何电话。它们导致没有可执行代码。他们所做的是告诉编译器一个函数存在。第一个是说“嘿,编译器,有一个名为addItems的函数,它返回一个string并且不带任何参数。其他两个参数与此类似。

在函数调用之前永远不要这样的类型名称。

尝试将显示string addItems();的行改为仅显示addItems();。这应该导致函数addItems被调用。

现在,您在声明函数addPriceitemPriceDisplay的地方并没有那么简单地转换为函数调用。根据上面的声明,这些函数带有参数和值,这些参数告诉它们要做什么。您没有任何明显的参数可以提供它们。

就个人而言,查看程序的其余部分,我认为您对功能是什么以及如何调用它们有一些非常深刻的误解。我认为这超出了StackOverflow回答的范围。