c – 变量’fstream grabpass’具有初始化器但不完整的类型

前端之家收集整理的这篇文章主要介绍了c – 变量’fstream grabpass’具有初始化器但不完整的类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从使用fstream的文件读取错误,第37行(fstream grabpass(“passwords.txt”);),但似乎没有做错什么.
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

int i,passcount,asterisks;
char replace,value,newchar;
string username,password,storedUsername,storedPassword;

int login(string username,string password)
{
    if (username=="test"/*storedUsername*/)
    {
        if (password==storedPassword)
        cout<<"Win!";
        else
        cout<<"Username correct,password incorrect.";
    }
    else cout<<"Lose. Wrong username and password.";
}

int main()
{
    cout<<"Username: ";
    cin>>username;
    cout<<"Password: ";
    do
    {
    newchar = getch();
    if (newchar==13)break;
    for (passcount>0;asterisks==passcount;asterisks++)cout<<"*";
    password = password + newchar;
    passcount++;
    } while (passcount!=10);

    fstream grabpass("passwords.txt");
    getline(grabpass,storedPassword);
    grabpass.close();
    login(username,password);

    return 0;
}

解决方法

您需要添加#include< fstream&gt ;.在猜测中,< iostream>可能包括一个fstream的声明(最喜欢通过< iosfwd>),而不是一个定义,因此当您尝试定义该类型的对象时,它具有不完整的类型.

猜你在找的C&C++相关文章