2017-10-20 40 views
-3

J'écris un code en C++ dans lequel il faut faire ce qui suit: créer le nombre de variables que l'utilisateur veut. Voici le codePortée d'une variable dans la boucle while (en C++)

#include <iostream> 
using namespace std; 
int main(){ 

cout<<"how many variables do you want to enter"<<endl; 
int numVar; 
cin>>numVar; 
int i=0;  
while(i<numVar){ 
    i++;   
    static int termi; 
    // creates 'numVar' number of terms 
    cout<<"enter term"<<i<<endl;   
    cin>>termi; 
    //the user gives values of each term 
} 
// I want to cout all the terms here and do some calculations 
return 0; 

Comment utiliser les variables créées en dehors de la boucle? J'ai vérifié dans -learncpp.com mais je n'ai pas trouvé de réponse satisfaisante.

+1

Vous ne pouvez pas créer de nouvelles variables avec de nouveaux noms lors de l'exécution. Utilisez des conteneurs à la place. – Ron

+1

Déclarez les variables dans la portée dont vous avez besoin. Si vous voulez accéder à la variable dans 'main()' et en dehors de la boucle, définissez-les dans 'main()' mais en dehors de la boucle. Déclarer quelque chose 'static' ne rend pas son nom accessible en dehors de sa portée englobante. – Peter

Répondre

1

Déclarer une variable dans main comme static est assez inutile, ne le faites pas. En outre, vous ne pouvez pas "créer" des variables au moment de l'exécution comme vous le souhaitez. Vous voulez plutôt utiliser un std::vector et le déclarer avant la boucle. Vous pouvez utiliser quelque chose comme ceci pour lire les valeurs:

size_t num; 
std::cin >> num; 
std::vector<int> terms(num); 
for (auto& e: terms) std::cin >> e;