簡體   English   中英

如何在單獨的函數中寫入文件

[英]How to write to file in separate function

我試圖讓我的程序寫入一個單獨的函數而不是main函數,我遇到了很多麻煩。 這是我的程序的簡化版本:

#include <iostream>
#include <fstream>
using namespace std;

void writeToFile(int x)
{
    outputFile << x << endl;
}

int main()
{
ofstream outputFile;
outputFile.open("program3data.txt");
for (int i = 0; i < 10; i++)
{
    writeToFile(i);
}
outputFile.close();
return 0;
}

您的writeToFile函數正在嘗試使用不同范圍的outputFile變量。 您可以將輸出流傳遞給該函數,這應該可以工作。

#include <iostream>
#include <fstream>
using namespace std;

void writeToFile(ofstream &outputFile, int x)
{
    outputFile << x << endl;
}

int main()
{
    ofstream outputFile;
    outputFile.open("program3data.txt");
    for (int i = 0; i < 10; i++)
    {
        writeToFile(outputFile, i);
    }
    outputFile.close();
    return 0;
}

您需要使您的子功能知道outputFile 如上所述,該變量僅存在於'main'函數內部。 您可以將功能簽名更改為:

void writeToFile(int x, ofstream of)

並稱之為:

writeToFile(i, outputFile);

這會將變量傳遞給子函數,以便它也可以在該范圍內使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM