2017-09-12 28 views
-3

我正在創建一個函數,其中包含6個值(3個字符串,3個整數),將這些值存儲在數組中,然後將這些值中的每個值以2對的形式打印出來2如何打印存儲在數組中的值

以下是我有:

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    const int SIZE = 3; 
    int time[SIZE] = {};   
    string name[SIZE] = {};  

    for (int a = 0; a < 3; a++) 
    { 
     cout << "Enter runner name: "; 
     getline (cin, name[+1]);   
     cout << "Enter runner time: "; 
     cin >> time[+1]; 
     cin.ignore(); 
    } 

    for (int a = 0; a < 3; a++) 
    { 
     cout << name << " finished in " << time << "\n"; 
    } 
    return 0; 
} 

,我想我的輸出看起來像這樣:

name1 finished in time1 
name2 finished in time2 
name3 finished in time3 

目前,我的輸出看起來是這樣的:

0x22fdf0 finished in 0x22fe10 
0x22fdf0 finished in 0x22fe10 
0x22fdf0 finished in 0x22fe10 

如何,我可以得到的輸入被存儲在陣列中,然後輸出這些值的用戶?

如果這已經被回答了,道歉。我一直無法找到一個例子,其中數組填充了用戶輸入值,然後返回到顯示器。

+3

'函數getline(CIN,名稱[1]);' - 請說出什麼,這是該怎麼辦?什麼是'name [+1]'?看起來你正在猜測要寫什麼,而不是看看一本好的C++書籍,以瞭解如何使用循環讀入數組。 – PaulMcKenzie

回答

1

你需要真正的索引使用[]下標運算符的數組。同樣,在打印時,您應該嘗試索引數組中的元素。由於當你嘗試打印數組本身時,編譯器會隱式地將數組轉換爲一個指針,當它打印出來時,它將打印該數組中第一個元素的內存地址,而不是元素本身。

所以,你可以在陣列提領來獲得在每個第一個值,但更好的方法是由a變量指數在你的for循環,像這樣:

#include <iostream> 
#include <string> 
using namespace std; 

int main() { 
    const int SIZE = 3; 
    int time[SIZE] = {}; 
    string name[SIZE] = {}; 

    for (int a = 0; a < 3; a++) { 
     cout << "Enter runner name: "; 
     getline(cin, name[a]); 
     cout << "Enter runner time: "; 
     cin >> time[a]; 
     cin.ignore(); 
    } 

    for (int a = 0; a < 3; a++) { 
     cout << name[a] << " finished in " << time[a] << "\n"; 
    } 
    return 0; 
} 

或者,如果你想不索引它,你可以使用你原來的做法,但你將不得不取消引用使用*引用操作指針:

for (int a = 0; a < 3; a++) { 
    cout << *name << " finished in " << *time<< "\n"; 
} 

不過,現在您只需將打印的第一個元素三次。因此,要解決這個問題,就需要採用某種指針運算,並通過增加值,得到的元素,0,1,和2過去的第一要素分別爲:

for (int a = 0; a < 3; a++) { 
    cout << *(name + a) << " finished in " << *(time + a)<< "\n"; 
} 

所以有些事情要查找: * Dereferncing *下標 *隱數組指針轉換

+1

建議:殺死幻數3.更換'對(INT A = 0;一<3; ++)''與對(INT A = 0;一 user4581301

相關問題