我试图保存一些数据,以便以后在.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);
}
这些是我得到的错误
答案 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文件并将其分析为好像是一个代码文件,然后尖叫它看起来像语法错误。