-1

こんにちは、C++ プログラムに 25 個の double の配列があります。double を配列に入れると、この 1.29839 のようになり、配列内のこの数値にアクセスしようとすると、この 4.45053e-317 のようになります。私は一種の初心者で、本当に迷っています。なぜこれが起こっているのか誰かが何か考えているなら、あなたの助けは大歓迎です.

コードは次のとおりです。

int main()
{
    double los[25];
    ifstream html;
    html.open("tmp");
    int count = 0;
    while(html.good())
    {
        //cout << "in\n" ;
        string line;
        getline(html, line);
        if(line.length() > 11)
        {
            string tmp = line.substr(10);
            if(tmp.length() > 3)
            {
                string cmp = tmp.substr(2,2);
                if(cmp == "lo")
                {
                    //cout << "\n" << tmp << "\n";
                    double curr = atof(tmp.substr(13).c_str());
                    los[count] == curr;
                    cout << curr << "\n";
                    count++;
                }
            }
        }
    }
    cout << count << "\n";
    for(int i=0; i<25; i++)
    {
        double curr = los[i];
        cout << curr << "\n";
    }
}
4

2 に答える 2

3

問題は、配列に何も割り当てていないことです。この線

los[count] == curr;

それらが等しいかどうかを評価するだけで、結果をどこにも保存しないため、何もしません。それを変更して、単一の=.

これらの問題の一部を回避するには、常に警告を有効にしてコンパイルしてください (-W -Wallから始めることをお勧めします)。行が何もしないという警告が表示されるはずです。

于 2013-03-11T22:54:58.617 に答える