[英]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.