如何通过C ++将fstream文件放入头文件中

时间:2018-02-05 07:37:24

标签: c++ file reference header fstream

我在C ++中使用fstream,它通过main()函数工作得很好。当我尝试使用头文件和相同的简单程序时,它不起作用。我想我需要在头文件中使用引用变量参数,但我不知道如何编写代码。我可以编写它,以便主函数将转到头文件以获取数据吗?

主要功能

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>

#include "Prog_5_15.h"

using namespace std;

int main()
{
    cout << "Hi Reed";
    //I would like to try to keep the data in 
    //the Header File

    //This works right
    ofstream outputFile;
    outputFile.open("e:\demofile2.txt");

    cout << "Now writing data to the file\n";
    outputFile << "Bach\n";
    outputFile << "Beethoven\n";
    outputFile << "Mozart\n";
    outputFile << "Schubert\n";

    outputFile.close();

    // Can I put a function here from the Header File
    // that gets info from fstream? 
    // Write_This();  ??
    cin.get();

    return 0;
}

标头文件

#pragma once

#ifndef P515_h
#define P515_h


class Prog_5_15
{
public:
    Prog_5_15();
    ofstream outputFile2;
    outputFile2.open("e:\demoFile3.txt");
    outputFile2.close();
    void Write_This();    // This part needs do be re-written
    ~Prog_5_15();
};

#endif // !P515_h
#include <iostream>
#include "Prog_5_15.h"

using namespace std;

Prog_5_15::Prog_5_15()
{
}

void Prog_5_15::Write_This()  // This needs to be re-written I think
{
    cout << "Now writing data to the file\n";
    outputFile << "Bach\n";
    outputFile << "Beethoven\n";
    outputFile << "Mozart\n";
    outputFile << "Schubert\n";
}

Prog_5_15::~Prog_5_15()
{
}

1 个答案:

答案 0 :(得分:0)

在班上使用相同的名称。

class Prog_5_15
{
public:
    Prog_5_15();
    ofstream outputFile2;
    ...

void Prog_5_15::Write_This()
{
    cout << "Now writing data to the file\n";
    outputFile << "Bach\n";
    ...

您不能拥有outputFileoutputFile2。选择一个名称并坚持下去。

使用构造函数打开文件

Prog_5_15::Prog_5_15()
{
    outputFile.open("e:\\demoFile3.txt");
}

另请注意,"e:\demoFile3.txt"错误,如果您想在字符串中使用反斜杠,则必须使用\\

删除析构函数和不需要的文件关闭语句。如果你的教授告诉你不同,他们不知道他们在说什么。

试试看,当你有更多问题时,请回来。并阅读一本关于C ++的书,这是基本的东西,任何书都会涵盖。