好的,所以我在这里插入我正在开发的这个程序的代码来帮助我完成工作。我不想详细介绍它是如何使用的,但最重要的是我正在创建一个程序:从用户获取两个值,操纵它们,然后将它们存储到一个数组中。
现在我可以通过一个非常简单的线性程序来做到这一点,但是我遇到困难的时候,当程序启动它要求用户输入两个值时,程序然后存储它,然后当它再次循环时,它将要求用户再提供两个值,然后我希望它再次存储,存储的次数取决于用户需要的数据点数量,然后最后我希望它打印出他们输入的所有操纵值,最后我希望它将它导出到一个txt文件,但稍后会出现。我只是想让基本失效。任何人都可以帮我这个吗?
#include <iostream>
#include <set>
double dCoordinates(double x)
{
return x / 1000;
}
void Store(int x , int y)
{
int anCoorValues[] = { x, y };
}
int main()
{
std::cout << "How many data points do you need to enter?" << std::endl;
int nAmountOfDataPoints;
std::cin >> nAmountOfDataPoints;
for (int nCount = 0; nCount < nAmountOfDataPoints; nCount++)
{
std::cout << "Enter E/W Coordinates" << std::endl;
double dEW;
std::cin >> dEW;
std::cout << "Enter N/S Coordinates" << std::endl;
double dNS;
std::cin >> dNS;
Store(dCoordinates(dEW),dCoordinates(dNS));
}
}
答案 0 :(得分:1)
您应该在main中声明一个容器,然后在需要时将其作为参数传递给其他函数。然后在任何时候你都可以输出容器。在您的情况下,最好使用std::vector<std::pair<double, double>>
例如(顺便说一下,为什么函数Store的参数类型为int?)
#include <vector>
#includde <utility>
double dCoordinates( double x )
{
return x / 1000;
}
void Store( std::vector<std::pair<double, double>> &v, double x , double y )
{
v.push_back( { x, y } );
}
int main()
{
std::cout << "How many data points do you need to enter?" << std::endl;
int nAmountOfDataPoints;
std::cin >> nAmountOfDataPoints;
std::vector<std::pair<double, double>> v;
v.reserve( nAmountOfDataPoints ) ;
//...
// Here you can output the folled vector
for ( const std::pair<double, double> &p : v )
{
std::cout << "( " << p.first << ", " << p.second << " )" << std::endl;
}
答案 1 :(得分:1)
查看此代码:
#include <iostream> // std::cout
#include <vector> // std::vector
#include <utility> // std::pair, std::make_pair()
#include <algorithm> // std::for_each()
int main()
{
std::vector<std::pair<double, double> > entered_values;
std::cout << "How many data points do you need to enter?" << std::endl;
int nAmountOfDataPoints;
std::cin >> nAmountOfDataPoints;
entered_values.reserve(nAmountOfDataPoints);
for (int nCount = 0; nCount < nAmountOfDataPoints; ++nCount)
{
std::cout << "Enter E/W Coordinates" << std::endl;
double dEW;
std::cin >> dEW;
std::cout << "Enter N/S Coordinates" << std::endl;
double dNS;
std::cin >> dNS;
entered_values.push_back(std::make_pair(dEW, dNS));
}
std::for_each(std::begin(entered_values), std::end(entered_values), [] (std::pair<double, double> const &i) {std::cout << i.first << "," << i.second << std::endl;});
}