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