gpt4 book ai didi

c - 如何扫描用户输入的字符串和整数以放入 c 中的二维数组中

转载 作者:行者123 更新时间:2023-11-30 14:31:43 25 4
gpt4 key购买 nike

我正在用 C 编写一个关于 2D 数组的程序,我将根据商店中的员工和产品数量获取用户生成的 2d 数组。我无法弄清楚如何将包含名称和数字的用户输入放入数组中。

  for (int r = 0; r < employees; r++)
{
for (int c = 0;c < numProducts; c++)
{
arr[r][c] = getUserInput();
}
}

最佳答案

因此,您可以使用可以包含 stringint 的对 vector 。

此示例程序允许您逐个节点输入对,并将其存储在对 vector (stringint)中:

Live sample

#include <iostream>
#include <vector>

int main()
{
int num;
std::string str;
std::vector<std::pair<std::string, int>> nodes; //container

std::cout << "Enter string and number" << std::endl;
while(std::cin >> str)
{
if(str == "exit") //type exit to leave the input cycle
break;
std::cin >> num;
nodes.push_back(std::make_pair(str, num));
}

for (const auto& p : nodes) // print the products
{
std::cout << p.first << " " << p.second << std::endl;
}
}

您现在可以将其合并到您需要做的事情中,因为您对问题的描述不允许我准确理解您如何将员工与产品和名称联系起来。

编辑

因此,根据您的评论,我添加了一个新的解决方案来维护 std::pair 它非常易于使用,我确信没有人会提示它,所以您需要一个包含对的容器(名称,值 vector )。

我将名称和值的输入分开,因为您的员工有多个名称,因此很难管理输入。

没有数量的员工和产品,您需要多少就放多少,需要多少产品值(value)就放多少。

Live sample

#include <iostream>
#include <vector>
#include <sstream>

int main() {
double temp_num;
std::string str, name;
std::vector<std::pair<std::string, std::vector<double>>> nodes; //container
std::vector<double> values;
while(true){
std::cout << "Enter employee name ('exit' to leave): ";
getline(std::cin, str); //employee name
if (str == "exit") {
break;
}
name = str;
std::cout << "Enter values: ";
getline(std::cin, str); //values
std::stringstream ss(str);
while(ss >> temp_num)
values.push_back(temp_num);
nodes.push_back(std::make_pair(name, values));
}
std::cout << std::endl;
for (const auto& p : nodes) // print names and the products
{
std::cout <<"Name - " << p.first << ": ";
for (const auto& vals : p.second) {
std::cout <<"$"<< vals << " ";
}
std::cout << std::endl;
}
}

关于c - 如何扫描用户输入的字符串和整数以放入 c 中的二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60174181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com