2013-12-12 4 views
0

여러분도 도움을 주시기 바랍니다. 이 배열에 1,2,3,4 값을 추가하려고하면 16 진수로 출력됩니다. 실제로 어떻게 16 진수가 아닌 배열을 인쇄 할 수 있습니까? 감사합니다C++ 배열 인쇄 16 진수?

int main() 
{ 
    int gr1; 
    int gr2; 
    int gr3; 
    int gr4; 
    int addup[4]={gr1, gr2, gr3, gr4}; 
    cout << "Please enter the first grade"; 
    cin >> gr1; 
    cout << "Please enter the second grade"; 
    cin >> gr2; 
    cout << "Please enter the third grade"; 
    cin >> gr3; 
    cout << "Please enter the fourth grade"; 
    cin >> gr4; 

     cout << addup; 

} 

답변

3

배열에 초기화되지 않은 변수를 추가하고 있습니다.

int main() 
{ 
    int gr1; 
    int gr2; 
    int gr3; 
    int gr4; 
    cout << "Please enter the first grade"; 
    cin >> gr1; 
    cout << "Please enter the second grade"; 
    cin >> gr2; 
    cout << "Please enter the third grade"; 
    cin >> gr3; 
    cout << "Please enter the fourth grade"; 
    cin >> gr4; 

    int addup[4]={gr1, gr2, gr3, gr4}; 

    for (int i = 0; i < 4; i++) 
     cout << addup[i]; 

} 
+1

여전히 값 대신 'addup'의 메모리 주소가 표시됩니다. – Constantin

+0

나는 그것을 해결할 것이라고 생각하면서 이것을 시도했다. 배열을 이동해도 아무런 차이가 없습니다! 가봐서 고마워. – MrTurvey

+0

죄송합니다! 편집 됨. 감사 –

3

cout << addup 메모리 주소를 인쇄, 당신은 루프에 대한이 값을 인쇄해야합니다

for(int i : addup) 
    cout << i << endl; 
1

당신은 단지 배열을 포맷 할 수 없습니다 : 없음 과부하 출력 운영자가 없습니다. 당신은하지만, 다음과 같이 인쇄 할 수 있습니다 :

std::copy(std::begin(addup), std::end(addup), 
      std::ostream_iterator<int>(std::cout, " ")); 

(가정하면 C++ (11)를 사용하고 <iterator><algorithm> 포함). 값을 인쇄하더라도 예상되는 값이 아닐 것입니다. 배열은이 시점에서 변수 값을 사용하여 정의한 지점에서 초기화됩니다. 변수를 나중에 변경한다고해서 배열에 영향을주는 것은 아닙니다. 값은 정의시 복사되고 참조되지는 않습니다. 당신은 항상 입력이 실제로되었는지 확인한다 : 당신은 또한 당신이 실제로 성공적으로 예를 들어, 당신은 쉽게 임의의 데이터를 처리 할 수 ​​있습니다 확인하지 않고

if (std::cin >> gr1 >> gr2 >> gr3 >> gr4) { 
    // do something with the input 
} 

를 사용하여 값을 읽을 수 있는지 확인해야합니다 있는지 확인해야합니다

주 성공한.

2

변수는 GR1, GR2, GR3 같이 GR4는

int gr1; 
int gr2; 
int gr3; 
int gr4; 

어레이 addup 보증되지 값을 초기화되지 않았다.

int addup[4]={gr1, gr2, gr3, gr4}; 

넌 처음 변수에 값을 할당하고 해당 후에

cout << addup; 

그때는 첫번째 요소의 어드레스를 표시 배열이 사항에 대해서는

int gr1; 
int gr2; 
int gr3; 
int gr4; 

cout << "Please enter the first grade"; 
cin >> gr1; 
cout << "Please enter the second grade"; 
cin >> gr2; 
cout << "Please enter the third grade"; 
cin >> gr3; 
cout << "Please enter the fourth grade"; 
cin >> gr4; 

int addup[4]={gr1, gr2, gr3, gr4}; 

정의해야 배열의. 배열 자체를 표시하려면 다음 구문을 사용하십시오.

for (int x : addup) cout << x << ' '; 
cout << endl;