2017-09-12 27 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

相关问题