2017-05-09 95 views
-1

我試圖保存一些數據,以便以後在.txt文件中使用。我第一次運行代碼,沒問題。第二次,所有地獄都打破了。該功能我你寫入該文件如下:無法編譯第二次運行C++

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

+0

這是什麼:** #include「Movies.txt」; ** –

+0

刪除#include「Movies.txt」; –

回答

3

總是從第一個錯誤開始。 (第6行意想不到的預處理記號)

#include "Movies.txt"; 

刪除分號,使得它的

#include "Movies.txt" 

但等待 - 你爲什麼包括非代碼文本文件作爲預處理指令?這可能是第二個錯誤信息的內容。 :)

我懷疑你只需要完全刪除該行。

另一個側面說明:

using namespace std; 

儘量不要做using namespace指令在頭文件。只在.cpp文件中。正式聲明您在該類中的流成員如下:

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

您正在使用文本文件作爲預處理器指令。編譯器正在查看.txt文件並分析它,就好像它是一個代碼文件一樣,並且尖叫它看起來是語法錯誤。