保存在 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&amp; out 并将std::cout 替换为out @user0042 你的意思是 void printComponents(Components const& cc ,std::ostream& out) 顺便说一句。你可以更简单地实现这一点。在 *ix 中(甚至在 Windows 上),您可以重定向程序的标准输出。 (例如,myProgram &gt;output.txt 将把 myProgram 的所有标准输出保存在 output.txt 中)这是 a 解决方案,但不是 C++ 解决方案(如已标记)。 如果是这样,我应该如何调用该函数? @user0042 【参考方案1】:

您在函数中添加另一个参数std::ostream&amp; out

void printComponents(Components const& cc, std::ostream& out)  
     // ...

并将std::cout 替换为out

out << " " << counter;  

然后打开一个文本文件并将其传递给您的函数

std::ofstream file("MyFile.txt");
for(...) 
    printComponents(components,file);

【讨论】:

最后一行的文件是什么? @Monaphys std::ofstream 之前一行中构造的变量。 变量‘std::ofstream file’有初始化但类型不完整:std::ofstream file("MyFile.txt"); @Monaphys 有关必要的#include 语句等的详细信息,请参阅documentation。 它是否保留在之前的 for 循环迭代中创建的数字?

以上是关于保存在 txt (c++) 中调用 for 循环的函数的输出的主要内容,如果未能解决你的问题,请参考以下文章

java,for循环执行5000条数据分别进行调用5个平台的API,然后保存到本地数

将结果保存到for循环c ++中的文件

请用C++ 编写程序,计算结果保存在TXT

C++ 指针在 for 循环中被覆盖

Windows 批处理:在 FOR 循环中调用多个命令?

如何在 C++ 中并行化一个 for 循环,只创建一次线程池