2011-08-08 4 views
0

J'essaie actuellement d'obtenir que mon programme stocke une valeur afin qu'il puisse afficher cette valeur chaque fois qu'il y a une erreur. Voici mon programme:valeur de stockage 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]; 
} 

Pratiquement, mon programme continue d'appeler cette fonction jusqu'à ce que je quitte, donc il continuera de mettre à jour mon programme et me montrer abc[1]. Ce que je veux, c'est que lorsque la condition de l'instruction if n'est pas remplie, abc[1] affichera la valeur précédemment connue de lui-même. Comment fait-on ça?.

+2

Si vous voulez un tableau persistant entre les différents appels à votre fonction, vous devez utiliser le tableau statique .. !! – Muse

Répondre

2

Je ne sais pas exactement ce résultat que vous essayez de, mais vous devez faire abc et i statique, ainsi:

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]; 
} 

Cela leur permettra de conserver leur valeur entre les appels de fonction. En ce moment, cette fonction est assez stupide, mais je ne sais pas quoi recommander parce que je ne sais pas ce que vous essayez de faire.

+0

Lol. Je comprends que tu veux dire, le programme n'a aucun sens, je le crée au hasard pour imiter la situation dans laquelle je suis parce que mon programme actuel est très long et désordonné. – Chang

+0

Thnx beaucoup ça fonctionne maintenant. – Chang

0

Pas sûr que je comprends parfaitement ce que vous sens, mais si vous voulez stocker la valeur précédente pour l'impression pourquoi ne pas avoir simplement une variable abcPrevious? Après chaque boucle (à la fin), mettez-la à jour avec la nouvelle valeur.

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; 
} 

Espérons que cela aide: D

Questions connexes