C++ 打印输出在main中,而不是在函数中

C++ 打印输出在main中,而不是在函数中,c++,arrays,pointers,io,void,C++,Arrays,Pointers,Io,Void,我有一个main函数,它调用readNumbers来创建一个由用户提示的动态分配的长度数组。然后,这个数组被传递给printNumbers,printNumbers打印元素的索引,后跟一个空格,然后是相应的元素值,然后是一个新行 我的代码在算法上是正确的,但是,我的老师希望输出打印在main内部,而不是函数内部。然而,我感到困惑,因为我被告知printNumber必须有一个返回类型void——那么这个函数不打印出内容以便您可以看到这个输出吗?如何在main中打印输出 主要内容: #包括 int*

我有一个main函数,它调用readNumbers来创建一个由用户提示的动态分配的长度数组。然后,这个数组被传递给printNumbers,printNumbers打印元素的索引,后跟一个空格,然后是相应的元素值,然后是一个新行


我的代码在算法上是正确的,但是,我的老师希望输出打印在main内部,而不是函数内部。然而,我感到困惑,因为我被告知printNumber必须有一个返回类型void——那么这个函数不打印出内容以便您可以看到这个输出吗?如何在main中打印输出

主要内容:

#包括
int*读取编号(int n);
无效打印编号(整数*编号,整数长度);
内部主(空)
{
整数长度;

std::cout据我所知,您的问题是:值必须在main中打印,但调用的函数必须返回
void

这里有一个使用“out参数”的解决方案(我讨厌它们,通常不会使用它们,但考虑到约束条件,它们是一个合理的选择):

void printNumber(int*number、int-length、std::string和result)
{
标准::stringstream ret;

对于(int i=0;我认为你需要再次询问你的老师它们的真正含义——要么在
printNumbers
函数中打印,要么将循环移动到
main
中,并完全放弃
printNumbers
函数。使用该函数没有意义,而是在
main
中打印。简单:替换
printNumber
调用函数中使用的实际代码。“如何在main中打印输出?”你只需要从函数
printNumbers
中提取这个循环,然后把它放到
main
中,你的老师想让你写一个名为“printNumbers”的函数,它不打印数字?那么,以Dijkstra的名义,它应该做什么呢?fandango?糟糕的教学又来了。
#include <iostream>

int * readNumbers(int n);

void printNumbers(int *numbers, int length);

int main (void)
{
    int length;

    std::cout<<"Enter your array length: "<<std::endl;
    std::cin>>length;


    int *arr=readNumbers(length);

    printNumbers(arr,length);

    delete[] arr;

    return 0;
}
#include <iostream>

int * readNumbers(int n)
{

    int *arr=new int[n]; //array dynamically allocated

    for (int i=0; i<n; i++)
    {
        std::cout<<"Enter value: "<<"\n";
        std::cin>>*(arr +i);

    }

    return arr;



}





void printNumbers(int *numbers, int length)
{

    for (int i=0; i<length; i++)
    {
        std::cout<<i<<" "<<*(numbers+i)<<std::endl;
    }

}
void printNumbers(int *numbers, int length, std::string &result)
{
    std::stringstream ret;
    for (int i=0; i<length; i++) {
        ret << i << " " << *(numbers+i) << std::endl;
    }
    result = ret.str();
}

int main()
{
    ...
    std::string res;
    printNumbers(arr, length, res);
    std::cout << res;
    ...
}