第二次运行C ++时无法编译

时间:2017-05-09 08:16:56

标签: c++

我试图保存一些数据,以便以后在.txt文件中使用。我第一次运行代码,没问题。第二次,所有的地狱都破裂了。我要写入文件的功能如下:

void VideoSelection::write(char Name[255], char address[255])
{
    int i = 0;
    string iString;
    saveFile.open("Movies.txt");
    for (string line; getline(input, line); ) // check for the number of movies (0-index)
    {
        iString = to_string(i);
        if (line == iString)
        {
            i++;
        }
    }
    saveFile << i << endl;
    saveFile << "NAME: " << Name << "   " << "ADDRESS: " << address << endl << endl;
    saveFile.close();
}

,使用的头文件如下:

#pragma once

#include <iostream>
#include <fstream>
#include <sstream>
#include "Movies.txt";

using namespace std;

class VideoSelection
{
public:
    VideoSelection();
    void write(char Name[255], char address[255]);
    void read();
    void sort();
    void open();
    ~VideoSelection();

protected:
    char http[255];
    ofstream saveFile;
    ifstream input;
};

和主要:

#include "VideoSelection.h"

int main()
{
    VideoSelection VS;
    char movieName[255];
    char movieAddress[255];
    cin >> movieName;
    cin >> movieAddress;

    VS.write(movieName, movieAddress);
}

这些是我得到的错误

https://gyazo.com/f5f13e7dfd18378152df6126b7a40be1

2 个答案:

答案 0 :(得分:3)

始终从第一个错误开始。 (第6行意外的预处理器令牌)

#include "Movies.txt";

删除分号,使其成为

#include "Movies.txt"

但是等等 - 为什么要包含非代码 TEXT文件作为预处理器指令?这可能是第二条错误消息的内容。 :)

我怀疑你只需要完全删除该行。

另一方面说明:

using namespace std;

尽量不要在头文件中执行using namespace指令。仅在.cpp文件中。按如下方式在该类中正式声明您的流成员:

std::ofstream saveFile;
std::ifstream input;

答案 1 :(得分:0)

您正在使用文本文件作为预处理器指令。编译器正在查看.txt文件并将其分析为好像是一个代码文件,然后尖叫它看起来像语法错误。