2017-10-12 3 views
-5

Lorsque je compile et exécute le programme que je reçois: L'année de votre naissance: 0 D'où vient le "0" ?? Voici le code:"0" De nulle part après cout

//! Program written by Samer!// 
#include <iostream> 
using namespace std; 
int main() 
{ 

double Year, Age; 
cout <<"The year you were born: "<< Year; //!Here the error appears!// 
cin >>Year; 
while (Year > 2017) //!That't a While loop!// 
{ 
    cout <<"Please enter a valid Year:" << Year << endl; 
    cin >>Year; 
} 
Age=2017-Year; 
cout <<"Your age is:" <<Age; 
std::cin.get(); 
return 0; 
} 
+1

Pourquoi faites-vous '' Year ''? à '//! Ici l'erreur apparaît! //'? – NathanOliver

+3

Vous semblez imprimer l'année non initialisée. La lecture d'une variable non initialisée peut faire n'importe quoi, y compris renvoyer la valeur 0. Il ne semble pas que vous vouliez l'imprimer quand même. Est-ce juste une faute de frappe? –

+2

Ceci est un problème pour votre débogueur, pas Stack Overflow. – MrEricSir

Répondre

3

Vous diffusez la Year variable:

cout <<"The year you were born: "<< Year; 
            ^^^^ 
  1. Votre code est en imprimant la conception Year. C'est ce que vous lui avez demandé de faire. Si vous ne voulez pas l'imprimer, alors non: cout <<"The year you were born: \n";
  2. Year n'a pas été initialisé et l'utiliser de cette manière est un comportement indéfini. Dans ce cas, il semble imprimer tout ce qui était dans la mémoire au moment de l'initialisation. Dans votre cas, il arrive d'imprimer 0.