2

几个小时前,我开始使用 C++(作为我曾经尝试学习的第一种编程语言),但我被一个非常简单(我确信)的问题所困......

基本上,我想从一个算法开始,它可以在给定高度和宽度的整数值的二维表面上,为任何点(由整数 a 和 b 定义)提供一个局部“密度值”。

我遇到的问题是,由于我想重用结果,如何存储程序启动时显示的数据(由于命令而出现的数据:

//print
cout<<D<<endl;

我真的很努力地寻找解决方案而没有找到任何东西......它可以存储在外部文件中,或者存储在一种“缓冲区”中,任何好的解决方案都可以做到这一点。

我只需要保留这个数据列表

谢谢!

这是我的代码:

#include <iostream>
#include <fstream>
//#include <vector> (the solution??)
#include <cstdlib>
#include <string>
#include <sstream>
using namespace std;

// constant values

float Da=0.1; //densities
float Db=0.5;
float Dc=1;
double Dd=1/3;

int l = 99;  //width & height
int h = 99;

float u = 1;  // UNIT


int main ()
{

    float a = 0;
    float b = 0; // Local variables



    while (a<l+1, b<h+1){

        //values for given a & b

        double DL = Da-Da*(b/h)+Dc*(b/h);
        double DR = Db-Db*(b/h)+Dd*(b/h);
        double D  = DL-DL*(a/l)+DR*(a/l);

        //print
        cout<<D<<endl;

        // next pixel & next line
        a++;
        if (a>l) {
            a = 0;
            b = b+u;
        }
}
}
4

3 回答 3

3

如果您只想将它​​们存储在列表或其他东西中,那么正如@Ben Voigt 提到的那样,vector 是一个不错的选择...

在你的情况下:

std::vector<double> myVector;
.
.
.
.
double D  = DL-DL*(a/l)+DR*(a/l);

// Storing over the vector
myvector.push_back (D);

所以现在你可以以任何你想要的方式使用向量......不要忘记取消注释你的行以包含向量......你还可以使用“pop_back”方法在需要时从中删除一些东西......

在文件上加载矢量: 将矢量值写入文件

操作向量的好链接:http: //msdn.microsoft.com/en-IN/library/8wt934f9%28v=vs.71%29.aspx

如果您需要了解向量:http ://www.cplusplus.com/reference/vector/vector/

于 2013-07-10T02:44:05.617 回答
0

您可以使用 fstream 将值保存到文件中。

fstream output("densities");

然后替换coutoutput.

这将导致您的值被写入应用程序工作目录中名为“密度”的文件。这将始终将数据写入同一个文件,因此如果您想在不同运行之间保留输出,请小心。

当您稍后想要读取该文件时,您将执行类似的操作。

 fstream input("densities");
 vector<double> values;

 // ... inside your loop
 double value;
 input >> value;
 values.push_back(value);

 // ... somewhere else use the values
 // for example, get the 11th density value.
 double density = values[10];

祝你好运!

于 2013-07-10T02:16:18.943 回答
0

假设您要存储的数据在程序运行时出现,您可以通过将输出重定向到文件来启动程序。

例如,在 linux、unix 或带有支持数据重定向的 shell 的操作系统中:

我的程序 > data.txt

然后,您将在文件“data.txt”中看到相同的数据。

于 2013-07-10T02:02:35.687 回答