Visual Studio 2015:获取“非标准语法,使用'&'创建指向成员的指针“错误

时间:2017-02-23 19:41:55

标签: c++ compilation

当我尝试编译代码时,对于什么是抛出错误感到非常困惑。我正在尝试通过打印出它应该从文件中提取的值来测试我编写的函数。

gameboard.cpp

#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <fstream> 
#include "error.h"

using namespace std;

int boardDim(ifstream & inputFile, unsigned int x, unsigned int y) {
    inputFile.open; //error is thrown here
    if (!(inputFile.is_open())) {
        throw fileNotOpen;
    }
    else {
        stringstream output(inputFile.getline); //error is also thrown here
        if (output >> x) {
            if (output >> y) {
                return success;
            }
            return secBoardVarErr;
        }
        return firstBoardVarErr;
    }
    cout << x << endl;
    cout << y << endl;
}

gameboard.h

#ifndef GAMEBOARD_H
#define GAMEBOARD_H

#include <iostream>


using namespace std;

//takes in dimensions of board from file
int boardDim(ifstream &, unsigned int, unsigned int);

#endif !GAMEBOARD_H

主要功能

#include "stdafx.h"
#include "functions.h"
#include "gamepieces.h"
#include "gameboard.h"
#include "error.h"

int main(int argc, char * argv[])
{
    ifstream x("test.txt");
    int test = 0;
    cout << boardDim(x, 0, 0) << endl;  
    return success;
}

我只测试我在游戏板标题和源文件中声明和定义的函数,因此将来会使用其他包含的文件但是已经过测试,并且在编译和运行它时不会抛出错误。

谢谢!

1 个答案:

答案 0 :(得分:0)

inputFile.open是一个函数,与inputFile.getline相同,所以你在这里遇到的是语法错误。正确的语法是:

inputFile.open()

inputFile.getline()