我正在构建一个能做一些事情的应用程序。。。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起另一个名字。