【问题标题】:istream / ostream parameters with arrays带数组的 istream / ostream 参数
【发布时间】:2015-07-18 06:50:23
【问题描述】:

好的,所以我有这段代码用于处理数组,但我知道我在这里做错了,我无法识别它。我应该使用 istream 和 ostream 参数......我认为,以及数组和 int 变量。这是代码和我得到的:

#include <iostream>;

#include <fstream>;

using namespace std;


//input data
void inputData(istream &, int[], int);

//print data
void printData(ostream &, const int[], int);

//copy one array to another
void copyArray(const int orig[], int dup[], int);

// copy one array to another in reverse
void revCopy(const int orig[], int rev[], int);

int main()
{
ifstream in;
ofstream out;

int x[10];
int y[10];
int z[10];

inputData( cin, x, 10);

printData(cout, x, 10);

copyArray(x, y, 10);

printData(cout, y, 10);

revCopy (y, z, 10);

printData(cout, z, 10);




return 0;
}

//input data
void inputData(istream & cin, int x[], int i)
{
cout << "Enter in 10 Values for array \"x\"" << endl;


for(i = 0; i <10; i++)
{
    cin >> x[i];
}
}

//print data
void printData(ostream & cout, const int x[], int i)
{
for (i = 0; i <10; i++)
{
    cout << x[i];
}

}

//copy one array to another
void copyArray(const int orig[], int dup[], int)
{

}


// copy one array to another in reverse
void revCopy(const int orig[], int rev[], int)
{

}

这是我目前所获得的,我在继续之前尝试测试打印功能,但我似乎无法通过这个:

Enter in 10 Values for array "x"
1
2
3
4
5
6
7
8
9
10
12345678910-858993460-858993460-858993460-858993460-858993460-858993460-85899346
0-858993460-858993460-858993460-858993460-858993460-858993460-858993460-85899346
0-858993460-858993460-858993460-858993460-858993460Press any key to continue . . .

我是 C++ 新手,现在正在上课,但是这个让我很困惑,在过去的几天里一直在试图弄清楚它,而我的导师一直没空。感谢大家的帮助!

【问题讨论】:

  • 请解释您期望该代码做什么以及您获得的输出...更新帖子时请考虑删除“这里的新内容”/“谢谢”,因为它们不提供任何额外的有关您的问题的详细信息。

标签: c++ arrays istream


【解决方案1】:

你声明

int z[10];

此时z 中的所有数据都未初始化,对它的任何访问都是未定义的行为。稍后您的代码调用

revCopy (y, z, 10);

但是这个功能还没有实现;没有任何东西被放入z,它仍然是未初始化的数据。所以打电话给

printData(cout, z, 10);

将导致未定义的行为,因此您会看到垃圾输出。如果您只是在实现其他功能之前进行测试,我建议您先零初始化z

【讨论】:

    猜你喜欢
    • 2020-12-24
    • 2018-04-25
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2011-07-07
    相关资源
    最近更新 更多