2011-08-08 99 views
0

我目前正試圖讓我的程序存儲一個值,以便在出現錯誤時可以顯示該值。下面是我的程序:存儲值Turbo C++

void function() 
{ 
    float abc[2]; 
    int i = 0; 
    if (i/2 != 0) 
    { 
     i++; 
     abc[0] = 1; 
    } 
    abc[1] = abc[0]; 
    cout << abc[1]; 
} 

實際上,我的程序不斷調用此函數,直到我離開它,所以它會不斷更新我的程序,並告訴我abc[1]。我想要的是當if聲明的條件未滿足時,abc[1]將顯示其自身的以前已知的值。我該怎麼做?。

+2

如果你想不同的調用之間的持久陣列給你的函數,那麼你應該使用靜態數組.. !! – Muse

回答

2

我不知道到底是什麼導致你試圖對的,但你需要做ABC和我一成不變的,正是如此:

void function() 
{ 
    static float abc[2]; 
    static int i = 0; 
    if (i/2 != 0) { i++; abc[0] = 1; } 
    abc[1] = abc[0]; 
    cout<<abc[1]; 
} 

這將允許他們保留函數調用之間的值。現在這個功能非常愚蠢,但我不知道推薦什麼,因爲我不知道你在做什麼。

+0

大家好。我明白你的意思,該程序根本沒有意義,我只是隨機創建它來模仿我所處的情況,因爲我的實際程序非常漫長和混亂。 – Chang

+0

Thnx現在正在工作。 – Chang

0

不知道我完全理解你的意思,但如果你想存儲以前的值打印爲什麼不只是有一個abcPrevious變量?每個循環後(最後)用新值更新它。

void function() 
{ 
    static float abcPrevious; 
    static float abc[2]; 
    static int i = 0; 
    if (i/2 != 0) 
    { 
     i++; 
     abc[0] = 1; 
    } 
    abcPrevious = abc[1]; 
    abc[1] = abc[0]; 
    cout << "abc[1] is: " << abc[1] << "\nabcPrevious is: " << abcPrevious << endl; 
} 

希望這有助於:d