簡體   English   中英

c ++數組打印十六進制?

[英]c++ Array printing hex?

希望你們能提供幫助。 當我嘗試將值添加到該數組即1,2,3,4時,它將打印為十六進制數字嗎? 我如何才能實際打印非十六進制數組? 謝謝

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;

}

您正在向數組添加未初始化的變量。

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

}

cout << addup打印內存地址,您需要一個for循環來打印出值:

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

由於變量gr1,gr2,gr3,gr4未初始化

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

數組加法具有未定義的值。

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

首先,您應該為變量分配值,然后再定義數組

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

至於這個說法

cout << addup;

然后顯示數組第一個元素的地址。 要顯示數組本身,請使用以下結構

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

您不能只格式化數組:沒有重載的輸出運算符。 您可以像這樣打印它:

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
}

無需檢查即可輕松處理隨機數據:您應始終驗證輸入是否實際成功。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM