保存在 txt (c++) 中调用 for 循环的函数的输出
Posted
技术标签:
【中文标题】保存在 txt (c++) 中调用 for 循环的函数的输出【英文标题】:Saving output of a function which is calling in a for loop in txt (c++) 【发布时间】:2017-10-28 11:47:39 【问题描述】:我在 for 循环中调用下面的函数。在每次迭代中,它都会在终端中打印一些数字。数字是按距离分开的。我想在一个txt文件中写入数字,这样程序运行完成后,我可以访问txt文件中的所有数字。这是我的功能:
void printComponents(Components const& cc)
auto id = 0;
for (auto& c : cc)
int counter=0;
for (auto v : c)
counter ++;
if (counter >1)
std::cout << " " << counter;
如何在txt文件中按顺序保存数字?
【问题讨论】:
您能否提供一个我可以投票的完整答案? @罗恩 只需添加另一个参数std::ostream& out
并将std::cout
替换为out
。
@user0042 你的意思是 void printComponents(Components const& cc ,std::ostream& out)
顺便说一句。你可以更简单地实现这一点。在 *ix 中(甚至在 Windows 上),您可以重定向程序的标准输出。 (例如,myProgram >output.txt
将把 myProgram
的所有标准输出保存在 output.txt
中)这是 a 解决方案,但不是 C++ 解决方案(如已标记)。
如果是这样,我应该如何调用该函数? @user0042
【参考方案1】:
您在函数中添加另一个参数std::ostream& out
void printComponents(Components const& cc, std::ostream& out)
// ...
并将std::cout
替换为out
out << " " << counter;
然后打开一个文本文件并将其传递给您的函数
std::ofstream file("MyFile.txt");
for(...)
printComponents(components,file);
【讨论】:
最后一行的文件是什么? @Monaphysstd::ofstream
之前一行中构造的变量。
变量‘std::ofstream file’有初始化但类型不完整:std::ofstream file("MyFile.txt");
@Monaphys 有关必要的#include
语句等的详细信息,请参阅documentation。
它是否保留在之前的 for 循环迭代中创建的数字?以上是关于保存在 txt (c++) 中调用 for 循环的函数的输出的主要内容,如果未能解决你的问题,请参考以下文章