错误:预期表达式和预期不合格 id



我正在构建一个能做一些事情的应用程序。。。Ya-boi试图实现一个密码功能,如果用户是新用户,则允许创建密码;如果用户是返回用户,则输入密码[所有数据都写入或读取到名为UserData.txt的txt文件中],编译器不断返回下面列出的错误。我在谷歌上到处找都找不到,我想这可能与Password变量声明字符串有关,但如果是这样的话,我不知道为什么它会期望一个表达式。我对编码还很陌生,所以代码有点草率,但这里还有一些我似乎无法理解的错误:

代码:

main.cpp


#include <iomanip>
#include "math.h"
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include "Privacy/Password.hpp"

using namespace std;

//Variable Prototypes

//Function Prototypes
void display();
void CreatePassword();


//Main Function
int main()
{
cout << "ttt~~Welcome to Tegridy Pharmaceuticals!~~" << endl;
CreatePassword();
}

密码.hpp


#include <iomanip>
#include "math.h"
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>

using std::cout;
using std::cin;
using std::ofstream;
using std::ifstream;
using std::fstream;
using std::string;


//header call 
#ifndef Password
#define Password

//ProtoTypes


//variables
string OldPassword = "OldPassword";
string Password = "OldPassword";
string PasswordTemp = "";


void CreatePassword()
{
fstream UserData;
UserData.open("UserData.txt");
UserData >> Password;

if (OldPassword != Password)
{ 
cout << "nEnter your Password (Case Sensitive):  ";
cin >> PasswordTemp;
while (PasswordTemp != Password)
{
cout << "WRONG!!! Try Again Dawggy: ";
cin >> PasswordTemp;
}
}
else 
{
ofstream UserData;
UserData.open("UserData.txt");

cout << "nCreate Your Password (Case Sensitive)" << std::endl;

cout << "NEW PASSWORD: ";
cin >> Password;
UserData << Password " = Password";
UserData.close();
}  
}

#endif

错误:

./Privacy/Password.hpp:25:17: error: expected unqualified-id
string Password = " ";
^
./Privacy/Password.hpp:33:23: error: expected expression
UserData >> Password;
^

./Privacy/Password.hpp:35:30: error: expected expression
if (OldPassword != Password) 
^

./Privacy/Password.hpp:39:36: error: expected expression
while (PasswordTemp != Password) 
^
./Privacy/Password.hpp:53:20: error: expected expression
cin >> Password;
^

宏定义

#define Password

意味着在此之后代码中的任何令牌Password都应该替换为空字符串。

因此,它阻止您将标识符Password用作变量。

你应该给include guard起另一个名字。