2

私は数時間前に C++ (私が学ぼうとした最初のプログラミング言語として) を始めましたが、非常に単純な (私はそれを確信しています) 問題でブロックされています...

基本的に、整数値の指定された高さと幅の2Dサーフェスで、任意のポイントのローカル「密度値」(整数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が述べたようにベクターが最適なオプションです...

あなたの場合:

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

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

これで、ベクターを好きなように使用できます... ur 行のコメントを外してベクターを含めることを忘れないでください...必要に応じて、「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

保存したいデータがプログラムの実行時に表示されたと仮定すると、出力をファイルにリダイレクトすることでプログラムを開始できます。

たとえば、Linux、Unix、またはデータ リダイレクトをサポートするシェルを備えた OS の場合:

マイプログラム > data.txt

次に、ファイル「data.txt」に同じデータが表示されます。

于 2013-07-10T02:02:35.687 に答える