c++ 底部的vInfo使用了未声明的标识符“vInfo”,不知道原因[已关闭]

guz6ccqo  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(121)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
17小时前关门了。
Improve this question

void disProductList(std::vector<Food> vInfo) {
          int i = 0;
          std::ifstream file("Data-base.txt");
          std::string line;
    
        int main() {
          while (true) {
            int userInput;
            std::cout << "Choose one option from the list below." << 
     std::endl;
            std::cout << "1 - Display Product list. " << std::endl;
            std::cout << "2 - Add Products to the product list." << 
     std::endl;
            std::cout << "3 - Remove a Product from the product 
       list." << std::endl;
            std::cin >> userInput;
            switch (userInput)
            case 1:
              disProductList(vInfo);
            break;
          }
        }

我想这就是它,足够清楚了吗?我希望是。vInfo在这之后被用来将项目推回向量中。

2ic8powd

2ic8powd1#

代码应该如下所示

std::vector<Food> disProductList() {
    int i = 0;
    std::ifstream file("Data-base.txt");
    std::string line;
    std::vector<Food> vInfo; // declare vInfo
    ...                      // code to populate vInfo
    return vInfo;            // return vInfo
}

int main() {
    ...
    std::vector<Food> vInfo = disProductList();
    ...
}

这就是编写返回值的函数的方法,不是将变量作为参数传递,而是在函数中声明变量,然后使用return将该值返回给调用函数。

相关问题